gplus

package
v0.0.0-...-029f6f4 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2019 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package gplus implements the OAuth2 protocol for authenticating users through Google+. This package can be used as a reference implementation of an OAuth2 provider for Goth.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Provider

type Provider struct {
	ClientKey   string
	Secret      string
	CallbackURL string
	// contains filtered or unexported fields
}

Provider is the implementation of `goth.Provider` for accessing Google+.

func New

func New(clientKey, secret, callbackURL string, scopes ...string) *Provider

New creates a new Google+ provider, and sets up important connection details. You should always call `gplus.New` to get a new Provider. Never try to create one manually.

func (*Provider) BeginAuth

func (p *Provider) BeginAuth(state string) (goth.Session, error)

func (*Provider) BeginAuthCtx

func (p *Provider) BeginAuthCtx(ctx context.Context, state string) (goth.Session, error)

BeginAuthCtx asks Google+ for an authentication end-point.

func (*Provider) Debug

func (p *Provider) Debug(debug bool)

Debug is a no-op for the gplus package.

func (*Provider) FetchUser

func (p *Provider) FetchUser(session goth.Session) (
	goth.User, error)

func (*Provider) FetchUserCtx

func (p *Provider) FetchUserCtx(ctx context.Context, session goth.Session) (
	goth.User, error)

FetchUserCtx will go to Google+ and access basic information about the user.

func (*Provider) Name

func (p *Provider) Name() string

Name is the name used to retrieve this provider later.

func (*Provider) RefreshToken

func (p *Provider) RefreshToken(refreshToken string) (
	*oauth2.Token, error)

func (*Provider) RefreshTokenAvailable

func (p *Provider) RefreshTokenAvailable() bool

RefreshTokenAvailable refresh token is provided by auth provider or not

func (*Provider) RefreshTokenCtx

func (p *Provider) RefreshTokenCtx(ctx context.Context, refreshToken string) (
	*oauth2.Token, error)

RefreshTokenCtx get new access token based on the refresh token

func (*Provider) SetPrompt

func (p *Provider) SetPrompt(prompt ...string)

SetPrompt sets the prompt values for the GPlus OAuth call. Use this to force users to choose and account every time by passing "select_account", for example. See https://developers.google.com/identity/protocols/OpenIDConnect#authenticationuriparameters

func (*Provider) UnmarshalSession

func (p *Provider) UnmarshalSession(data string) (goth.Session, error)

UnmarshalSession will unmarshal a JSON string into a session.

type Session

type Session struct {
	AuthURL      string
	AccessToken  string
	RefreshToken string
	ExpiresAt    time.Time
}

Session stores data during the auth process with Facebook.

func (*Session) Authorize

func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, error)

func (*Session) AuthorizeCtx

func (s *Session) AuthorizeCtx(ctx context.Context, provider goth.Provider, params goth.Params) (string, error)

AuthorizeCtx the session with Google+ and return the access token to be stored for future use.

func (Session) GetAuthURL

func (s Session) GetAuthURL() (string, error)

GetAuthURL will return the URL set by calling the `BeginAuth` function on the Google+ provider.

func (Session) Marshal

func (s Session) Marshal() string

Marshal the session into a string

func (Session) String

func (s Session) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL