{"id":37172119,"url":"https://github.com/bgdsh/goth","last_synced_at":"2026-01-14T20:04:32.318Z","repository":{"id":57695230,"uuid":"487561976","full_name":"bgdsh/goth","owner":"bgdsh","description":"A fork of goth for echo framework","archived":false,"fork":true,"pushed_at":"2022-05-06T06:35:40.000Z","size":3989,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-06-20T05:05:57.536Z","etag":null,"topics":["echo-framework","golang","oidc-client"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"markbates/goth","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bgdsh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-01T14:43:34.000Z","updated_at":"2022-05-06T06:17:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bgdsh/goth","commit_stats":null,"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"purl":"pkg:github/bgdsh/goth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgdsh%2Fgoth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgdsh%2Fgoth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgdsh%2Fgoth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgdsh%2Fgoth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bgdsh","download_url":"https://codeload.github.com/bgdsh/goth/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgdsh%2Fgoth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["echo-framework","golang","oidc-client"],"created_at":"2026-01-14T20:04:31.687Z","updated_at":"2026-01-14T20:04:32.310Z","avatar_url":"https://github.com/bgdsh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Goth: Multi-Provider Authentication for Go [![GoDoc](https://godoc.org/github.com/bgdsh/goth?status.svg)](https://godoc.org/github.com/bgdsh/goth) [![Build Status](https://github.com/bgdsh/goth/workflows/ci/badge.svg)](https://github.com/bgdsh/goth/actions) [![Go Report Card](https://goreportcard.com/badge/github.com/bgdsh/goth)](https://goreportcard.com/report/github.com/bgdsh/goth)\n\nPackage goth 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\nThis package was inspired by [https://github.com/intridea/omniauth](https://github.com/intridea/omniauth).\n\n\n**This repo is fork from [goth](github.com/markbates/goth) to support the [Echo](https://echo.labstack.com/) framework**\n\n\n## Installation\n\n```text\n$ go get github.com/bgdsh/goth\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- DigitalOcean\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- Okta\n- OneDrive\n- OpenID Connect (auto discovery)\n- Oura\n- Paypal\n- SalesForce\n- Shopify\n- Slack\n- Soundcloud\n- Spotify\n- Steam\n- Strava\n- Stripe\n- TikTok\n- Tumblr\n- Twitch\n- Twitter\n- Typetalk\n- Uber\n- VK\n- Wepay\n- WeCom\n- Xero\n- Yahoo\n- Yammer\n- Yandex\n- Zoom\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:markbates/goth.git\n```\n\nor use\n\n```text\n$ go get github.com/bgdsh/goth\n```\n\n```text\n$ cd goth/examples\n$ go get -v\n$ go build\n$ ./examples\n```\n\nNow open up your browser and go to [http://localhost:3000](http://localhost:3000) 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, gothic uses a `CookieStore` from the `gorilla/sessions` package to store session data.\n\nAs configured, this default store (`gothic.Store`) will generate cookies with `Options`:\n\n```go\n\u0026Options{\n   Path:   \"/\",\n   Domain: \"\",\n   MaxAge: 86400 * 30,\n   HttpOnly: true,\n   Secure: false,\n }\n```\n\nTo tailor these fields for your application, you can override the `gothic.Store` variable at startup.\n\nThe following snippet shows one way to do this:\n\n```go\nkey := \"\"             // Replace with your SESSION_SECRET or similar\nmaxAge := 86400 * 30  // 30 days\nisProd := false       // Set to true when serving over https\n\nstore := sessions.NewCookieStore([]byte(key))\nstore.MaxAge(maxAge)\nstore.Options.Path = \"/\"\nstore.Options.HttpOnly = true   // HttpOnly should always be enabled\nstore.Options.Secure = isProd\n\ngothic.Store = store\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. Make sure the codebase adhere to the Go coding standards by executing `gofmt -s -w ./`\n5. Commit your changes (git commit -am 'Add some feature')\n6. Push to the branch (git push origin my-new-feature)\n7. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgdsh%2Fgoth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbgdsh%2Fgoth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgdsh%2Fgoth/lists"}