Versions in this module Expand all Collapse all v0 v0.1.0 Nov 22, 2017 Changes in this version + type Config struct + ClientID string + ClientSecret string + Endpoint oauth2.Endpoint + RedirectURI string + Scopes []string + UserAPI string + func NewFacebookConfig(base gate.Config, id, secret, redirectURI string) Config + func NewGoogleConfig(base gate.Config, id, secret, redirectURI string) Config + type DefaultProvider struct + func (provider DefaultProvider) AuthCodeURL(state string, opts ...oauth2.AuthCodeOption) string + func (provider DefaultProvider) Client(ctx context.Context, t *oauth2.Token) internal.HTTPClient + func (provider DefaultProvider) Exchange(ctx context.Context, code string) (*oauth2.Token, error) + type Driver struct + func New(config Config, handler LoginFunc, container dependency.Container) *Driver + func (auth Driver) Authenticate(tokenString string) (user gate.User, err error) + func (auth Driver) Authorize(user gate.User, action, object string) (err error) + func (auth Driver) GetUserAbilities(user gate.User) (abilities []gate.UserAbility, err error) + func (auth Driver) GetUserFromJWT(token gate.JWT) (user gate.User, err error) + func (auth Driver) IssueJWT(user gate.User) (token gate.JWT, err error) + func (auth Driver) Login(credentials map[string]string) (user gate.User, err error) + func (auth Driver) LoginURL(state string) (string, error) + func (auth Driver) ParseJWT(tokenString string) (token gate.JWT, err error) + func (auth Driver) StoreJWT(token gate.JWT) (err error) + type GoogleUser struct + Email string + EmailVerified bool + func (user GoogleUser) GetEmail() string + type LoginFunc func(driver Driver, code, state string) (gate.HasEmail, error) + var GoogleStatelessHandler LoginFunc = func(driver Driver, code, state string) (account gate.HasEmail, err error) { ... } + var LoginFuncStub LoginFunc = func(Driver, string, string) (gate.HasEmail, error) { ... } + type Provider interface + AuthCodeURL func(state string, opts ...oauth2.AuthCodeOption) string + Client func(ctx context.Context, t *oauth2.Token) internal.HTTPClient + Exchange func(ctx context.Context, code string) (*oauth2.Token, error)