oauth2

package
v0.8.6 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2019 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Auth

type Auth struct {
	UserEmail string

	Storage *TokenStore
}

Auth is XOAUTH2 implementation of smtp.Auth interface

func (*Auth) Next

func (auth *Auth) Next(fromServer []byte, more bool) (toServer []byte, err error)

Next sends empty response to solve SASL challenge if response code is 334

func (*Auth) Start

func (auth *Auth) Start(server *smtp.ServerInfo) (proto string, toServer []byte, err error)

Start returns proto and auth credentials for first auth msg

type Credentials

type Credentials struct {
	ClientID     string `json:"client_id"`
	ClientSecret string `json:"client_secret"`
	TokenURI     string `json:"token_uri"`
}

Credentials represents OAuth2 credentials

type Token

type Token struct {
	AccessToken  string    `json:"access_token"`
	RefreshToken string    `json:"refresh_token"`
	Type         string    `json:"token_type"`
	Expiry       time.Time `json:"expiry"`
}

Token represents OAuth2 token

func RefreshToken

func RefreshToken(creds Credentials, refreshToken string) (*Token, error)

RefreshToken is a helper method that refreshes token with given credentials and OUATH2 refresh token

type TokenStore

type TokenStore struct {
	// contains filtered or unexported fields
}

TokenStore is a thread safe storage for OAuth2 token and credentials

func NewTokenStore

func NewTokenStore(creds Credentials, token Token) *TokenStore

NewTokenStore creates new instance of token storage

func (*TokenStore) Token

func (s *TokenStore) Token() (*Token, error)

Token retrieves token in a thread safe way and refreshes it if needed

Jump to

Keyboard shortcuts

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