Documentation

Overview

Package oauthutil contains OAuth 2 related utilities.

Index

Constants

View Source
const TitleBarRedirectURL = "urn:ietf:wg:oauth:2.0:oob"

TitleBarRedirectURL is the OAuth2 redirect URL to use when the authorization code should be returned in the title bar of the browser, with the page text prompting the user to copy the code and paste it in the application.

Variables

View Source
var ErrNoAuthCode = errors.New("oauthutil: unspecified TokenSource.AuthCode")

ErrNoAuthCode is returned when Token() has not found any valid cached token and TokenSource does not have an AuthCode for getting a new token.

Functions

func NewRefreshTokenSource

func NewRefreshTokenSource(config *oauth2.Config, refreshToken string) oauth2.TokenSource

NewRefreshTokenSource returns a token source that obtains its initial token based on the provided config and the refresh token.

Types

type TokenSource

type TokenSource struct {
	Config *oauth2.Config

	// CacheFile is where the token will be stored JSON-encoded. Any call to Token
	// first tries to read a valid token from CacheFile.
	CacheFile string

	// AuthCode provides the authorization code that Token will exchange for a token.
	// It usually is a way to prompt the user for the code. If CacheFile does not provide
	// a token and AuthCode is nil, Token returns ErrNoAuthCode.
	AuthCode func() string
}

TokenSource is an implementation of oauth2.TokenSource. It uses CacheFile to store and reuse the the acquired token, and AuthCode to provide the authorization code that will be exchanged for a token otherwise.

func (TokenSource) Token

func (src TokenSource) Token() (*oauth2.Token, error)

Token first tries to find a valid token in CacheFile, and otherwise uses Config and AuthCode to fetch a new token. This new token is saved in CacheFile (if not blank). If CacheFile did not provide a token and AuthCode is nil, ErrNoAuthCode is returned.

Source Files