{"id":18700183,"url":"https://github.com/shareed2k/goth_fiber","last_synced_at":"2025-04-12T08:18:57.476Z","repository":{"id":37014263,"uuid":"258485839","full_name":"Shareed2k/goth_fiber","owner":"Shareed2k","description":"Package goth_fiber provides a simple, clean, and idiomatic way to write authentication packages for fiber framework applications.","archived":false,"fork":false,"pushed_at":"2025-04-09T08:00:33.000Z","size":418,"stargazers_count":91,"open_issues_count":4,"forks_count":17,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T08:18:51.670Z","etag":null,"topics":["fiber-framework","goth","oauth","oauth2"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shareed2k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-24T10:53:23.000Z","updated_at":"2025-04-09T07:59:25.000Z","dependencies_parsed_at":"2023-01-17T13:15:56.502Z","dependency_job_id":"4f609d52-3e42-4571-9a81-3379a2042650","html_url":"https://github.com/Shareed2k/goth_fiber","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shareed2k%2Fgoth_fiber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shareed2k%2Fgoth_fiber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shareed2k%2Fgoth_fiber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shareed2k%2Fgoth_fiber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shareed2k","download_url":"https://codeload.github.com/Shareed2k/goth_fiber/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248537192,"owners_count":21120711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fiber-framework","goth","oauth","oauth2"],"created_at":"2024-11-07T11:36:06.618Z","updated_at":"2025-04-12T08:18:57.456Z","avatar_url":"https://github.com/Shareed2k.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Goth-Fiber: Multi-Provider Authentication for Go [![GoDoc](https://godoc.org/github.com/shareed2k/goth_fiber?status.svg)](https://godoc.org/github.com/shareed2k/goth_fiber)\n\nIs wrapper for [goth library](https://github.com/markbates/goth) to use with [fiber Framework](https://github.com/gofiber/fiber), provides a simple, clean, and idiomatic way to write authentication\npackages for Go web applications.\n\nUnlike other similar packages, Goth, lets you write OAuth, OAuth2, or any other\nprotocol providers, as long as they implement the `Provider` and `Session` interfaces.\n\n## Installation\n\n```text\n$ go get github.com/shareed2k/goth_fiber\n```\n\n## Supported Providers\n\n- Amazon\n- Apple\n- Auth0\n- Azure AD\n- Battle.net\n- Bitbucket\n- Box\n- Cloud Foundry\n- Dailymotion\n- Deezer\n- Digital Ocean\n- Discord\n- Dropbox\n- Eve Online\n- Facebook\n- Fitbit\n- Gitea\n- GitHub\n- Gitlab\n- Google\n- Google+ (deprecated)\n- Heroku\n- InfluxCloud\n- Instagram\n- Intercom\n- Kakao\n- Lastfm\n- Linkedin\n- LINE\n- Mailru\n- Meetup\n- MicrosoftOnline\n- Naver\n- Nextcloud\n- OneDrive\n- OpenID Connect (auto discovery)\n- Paypal\n- SalesForce\n- Shopify\n- Slack\n- Soundcloud\n- Spotify\n- Steam\n- Strava\n- Stripe\n- Tumblr\n- Twitch\n- Twitter\n- Typetalk\n- Uber\n- VK\n- Wepay\n- Xero\n- Yahoo\n- Yammer\n- Yandex\n\n## Examples\n\nSee the [examples](examples) folder for a working application that lets users authenticate\nthrough Twitter, Facebook, Google Plus etc.\n\nTo run the example either clone the source from GitHub\n\n```text\n$ git clone git@github.com/shareed2k/goth_fiber.git\n```\n\n```text\n$ go get github.com/shareed2k/goth_fiber\n```\n\n```text\n$ cd goth_fiber/examples\n$ go get -v\n$ go build\n$ ./examples\n```\n\nNow open up your browser and go to [http://localhost:8088/login/google](http://localhost:8088/login/google) to see the example.\n\nTo actually use the different providers, please make sure you set environment variables. Example given in the examples/main.go file\n\n## Security Notes\n\nBy default, goth_fiber uses a `Session` from the `gofiber/session` package to store session data.\n\nAs configured, goth will generate cookies with the following `session.Config`:\n\n```go\n    session.Config{\n\t    Expiration: 24 * time.Hour,\n\t    Storage:    memory.New(),\n\t    KeyLookup: \"cookie:_gothic_session\",\n\t    CookieDomain: \"\",\n\t    CookiePath: \"\",\n\t    CookieSecure: false,\n\t    CookieHTTPOnly: true,\n\t    CookieSameSite: \"Lax\",\n\t    KeyGenerator: utils.UUIDv4,\n\t}\n```\n\nTo tailor these fields for your application, you can override the `goth_fiber.SessionStore` variable at startup.\n\nThe following snippet shows one way to do this:\n\n```go\n    // optional config\n    config := session.Config{\n\t    Expiration:     30 * time.Minutes,\n\t    Storage:        sqlite3.New(), // From github.com/gofiber/storage/sqlite3\n\t    KeyLookup:      \"header:session_id\",\n\t    CookieDomain:   \"google.com\",\n\t    CookiePath:     \"/users\",\n\t    CookieSecure:   os.Getenv(\"ENVIRONMENT\") == \"production\",\n\t    CookieHTTPOnly: true, // Should always be enabled\n\t    CookieSameSite: \"Lax\",\n\t    KeyGenerator:   utils.UUIDv4,\n\t}\n\n    // create session handler\n    sessions := session.New(config)\n\n    goth_fiber.SessionStore = sessions\n```\n\n## Issues\n\nIssues always stand a significantly better chance of getting fixed if they are accompanied by a\npull request.\n\n## Contributing\n\nWould I love to see more providers? Certainly! Would you love to contribute one? Hopefully, yes!\n\n1. Fork it\n2. Create your feature branch (git checkout -b my-new-feature)\n3. Write Tests!\n4. Commit your changes (git commit -am 'Add some feature')\n5. Push to the branch (git push origin my-new-feature)\n6. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshareed2k%2Fgoth_fiber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshareed2k%2Fgoth_fiber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshareed2k%2Fgoth_fiber/lists"}