Version: v2.1.0+incompatible Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Nov 20, 2018 License: MIT Imports: 9 Imported by: 66



Package oauth2 provides handlers for OAuth2 login and callback requests.



This section is empty.


View Source
var (
	ErrInvalidState = errors.New("oauth2: Invalid OAuth2 state parameter")

Errors which may occur on login.


func CallbackHandler

func CallbackHandler(config *oauth2.Config, success, failure http.Handler) http.Handler

CallbackHandler handles OAuth2 redirection URI requests by parsing the auth code and state, comparing with the state value from the ctx, and obtaining an OAuth2 Token.

func LoginHandler

func LoginHandler(config *oauth2.Config, failure http.Handler) http.Handler

LoginHandler handles OAuth2 login requests by reading the state value from the ctx and redirecting requests to the AuthURL with that state value.

func StateFromContext

func StateFromContext(ctx context.Context) (string, error)

StateFromContext returns the state value from the ctx.

func StateHandler

func StateHandler(config gologin.CookieConfig, success http.Handler) http.Handler

StateHandler checks for a state cookie. If found, the state value is read and added to the ctx. Otherwise, a non-guessable value is added to the ctx and to a (short-lived) state cookie issued to the requester.

Implements OAuth 2 RFC 6749 10.12 CSRF Protection. If you wish to issue state params differently, write a http.Handler which sets the ctx state, using oauth2 WithState(ctx, state) since it is required by LoginHandler and CallbackHandler.

func TokenFromContext

func TokenFromContext(ctx context.Context) (*oauth2.Token, error)

TokenFromContext returns the Token from the ctx.

func WithState

func WithState(ctx context.Context, state string) context.Context

WithState returns a copy of ctx that stores the state value.

func WithToken

func WithToken(ctx context.Context, token *oauth2.Token) context.Context

WithToken returns a copy of ctx that stores the Token.


This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL