Login with Google allows users to login to any web app with their Google account.
Package gologin
provides Go handlers for the Google OAuth2 Authorization flow and for obtaining the Google Userinfoplus struct.
go get github.com/dghubble/gologin/google
cd $GOPATH/src/github.com/dghubble/gologin/examples/google
go get .
main.go shows an example web app which uses gologin
to issue a client-side cookie session. For simplicity, no data is persisted.
Visit Google Developer Console under Project, APIs, Credentials to get your OAuth2 client credentials. Add http://localhost:8080/google/callback
as a valid OAuth2 Redirect URL.
Compile and run main.go
from examples/google
. Pass the client id and secret as arguments to the executable
go run main.go -client-id=xx -client-secret=yy
2015/09/25 23:09:13 Starting Server listening on localhost:8080
or set the GOOGLE_CLIENT_ID
and GOOGLE_CLIENT_SECRET
environment variables.
Here's what the flow looks like.
- The "Login with Google" link to the login handler directs the user to the Google OAuth2 Auth URL to obtain a permission grant.
- The redirection URI (callback handler) receives the OAuth2 callback, verifies the state parameter, and obtains a Token.
- The success
http.Handler
is called with aContext
which contains the Google Token and verified Google Userinfoplus struct. - In this example, that User is read and used to issue a signed cookie session.