forgejo/vendor/github.com/markbates/goth
Willem van Dreumel 950f2e2074 Additional OAuth2 providers (#1010)
* add google+

* sort signin oauth2 providers based on the name so order is always the same

* update auth tip for google+

* add gitlab provider

* add bitbucket provider (and some go fmt)

* add twitter provider

* add facebook provider

* add dropbox provider

* add openid connect provider incl. new format of tips section in "Add New Source"

* lower the amount of disk storage for each session to prevent issues while building cross platform (and disk overflow)

* imports according to goimport and code style

* make it possible to set custom urls to gitlab and github provider (only these could have a different host)

* split up oauth2 into multiple files

* small typo in comment

* fix indention

* fix indentation

* fix new line before external import

* fix layout of signin part

* update "broken" dependency
2017-05-01 21:26:53 +08:00
..
gothic Oauth2 consumer (#679) 2017-02-22 08:14:37 +01:00
providers Additional OAuth2 providers (#1010) 2017-05-01 21:26:53 +08:00
doc.go Oauth2 consumer (#679) 2017-02-22 08:14:37 +01:00
LICENSE.txt Oauth2 consumer (#679) 2017-02-22 08:14:37 +01:00
provider.go Oauth2 consumer (#679) 2017-02-22 08:14:37 +01:00
README.md Oauth2 consumer (#679) 2017-02-22 08:14:37 +01:00
session.go Oauth2 consumer (#679) 2017-02-22 08:14:37 +01:00
user.go Oauth2 consumer (#679) 2017-02-22 08:14:37 +01:00

Goth: Multi-Provider Authentication for Go GoDoc Build Status

Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications.

Unlike other similar packages, Goth, lets you write OAuth, OAuth2, or any other protocol providers, as long as they implement the Provider and Session interfaces.

This package was inspired by https://github.com/intridea/omniauth.

Installation

$ go get github.com/markbates/goth

Supported Providers

  • Amazon
  • Auth0
  • Bitbucket
  • Box
  • Cloud Foundry
  • Dailymotion
  • Deezer
  • Digital Ocean
  • Discord
  • Dropbox
  • Facebook
  • Fitbit
  • GitHub
  • Gitlab
  • Google+
  • Heroku
  • InfluxCloud
  • Instagram
  • Intercom
  • Lastfm
  • Linkedin
  • Meetup
  • OneDrive
  • OpenID Connect (auto discovery)
  • Paypal
  • SalesForce
  • Slack
  • Soundcloud
  • Spotify
  • Steam
  • Stripe
  • Twitch
  • Twitter
  • Uber
  • Wepay
  • Yahoo
  • Yammer

Examples

See the examples folder for a working application that lets users authenticate through Twitter, Facebook, Google Plus etc.

To run the example either clone the source from GitHub

$ git clone git@github.com:markbates/goth.git

or use

$ go get github.com/markbates/goth
$ cd goth/examples
$ go get -v
$ go build 
$ ./examples

Now open up your browser and go to http://localhost:3000 to see the example.

To actually use the different providers, please make sure you configure them given the system environments as defined in the examples/main.go file

Issues

Issues always stand a significantly better chance of getting fixed if the are accompanied by a pull request.

Contributing

Would I love to see more providers? Certainly! Would you love to contribute one? Hopefully, yes!

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Write Tests!
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

Contributors

  • Mark Bates
  • Tyler Bunnell
  • Corey McGrillis
  • willemvd
  • Rakesh Goyal
  • Andy Grunwald
  • Glenn Walker
  • Kevin Fitzpatrick
  • Ben Tranter
  • Sharad Ganapathy
  • Andrew Chilton
  • sharadgana
  • Aurorae
  • Craig P Jolicoeur
  • Zac Bergquist
  • Geoff Franks
  • Raphael Geronimi
  • Noah Shibley
  • lumost
  • oov
  • Felix Lamouroux
  • Rafael Quintela
  • Tyler
  • DenSm
  • Samy KACIMI
  • dante gray
  • Noah
  • Jacob Walker
  • Marin Martinic
  • Roy
  • Omni Adams
  • Sasa Brankovic
  • dkhamsing
  • Dante Swift
  • Attila Domokos
  • Albin Gilles
  • Syed Zubairuddin
  • Johnny Boursiquot
  • Jerome Touffe-Blin
  • bryanl
  • Masanobu YOSHIOKA
  • Jonathan Hall
  • HaiMing.Yin
  • Sairam Kunala