oauth2.v4: gopkg.in/oauth2.v4 Index | Files | Directories

package oauth2

import "gopkg.in/oauth2.v4"


Package Files

const.go doc.go generate.go manage.go model.go store.go

type AccessGenerate Uses

type AccessGenerate interface {
    Token(ctx context.Context, data *GenerateBasic, isGenRefresh bool) (access, refresh string, err error)

AccessGenerate generate the access and refresh tokens interface

type AuthorizeGenerate Uses

type AuthorizeGenerate interface {
    Token(ctx context.Context, data *GenerateBasic) (code string, err error)

AuthorizeGenerate generate the authorization code interface

type ClientInfo Uses

type ClientInfo interface {
    GetID() string
    GetSecret() string
    GetDomain() string
    GetUserID() string

ClientInfo the client information model interface

type ClientPasswordVerifier Uses

type ClientPasswordVerifier interface {
    VerifyPassword(string) bool

ClientPasswordVerifier the password handler interface

type ClientStore Uses

type ClientStore interface {
    // according to the ID for the client information
    GetByID(ctx context.Context, id string) (ClientInfo, error)

ClientStore the client information storage interface

type CodeChallengeMethod Uses

type CodeChallengeMethod string

CodeChallengeMethod PCKE method

const (
    // CodeChallengePlain PCKE Method
    CodeChallengePlain CodeChallengeMethod = "plain"
    // CodeChallengeS256 PCKE Method
    CodeChallengeS256 CodeChallengeMethod = "S256"

func (CodeChallengeMethod) String Uses

func (ccm CodeChallengeMethod) String() string

func (CodeChallengeMethod) Validate Uses

func (ccm CodeChallengeMethod) Validate(cc, ver string) bool

Validate code challenge

type GenerateBasic Uses

type GenerateBasic struct {
    Client    ClientInfo
    UserID    string
    CreateAt  time.Time
    TokenInfo TokenInfo
    Request   *http.Request

GenerateBasic provide the basis of the generated token data

type GrantType Uses

type GrantType string

GrantType authorization model

const (
    AuthorizationCode   GrantType = "authorization_code"
    PasswordCredentials GrantType = "password"
    ClientCredentials   GrantType = "client_credentials"
    Refreshing          GrantType = "refresh_token"
    Implicit            GrantType = "__implicit"

define authorization model

func (GrantType) String Uses

func (gt GrantType) String() string

type Manager Uses

type Manager interface {
    // get the client information
    GetClient(ctx context.Context, clientID string) (cli ClientInfo, err error)

    // generate the authorization token(code)
    GenerateAuthToken(ctx context.Context, rt ResponseType, tgr *TokenGenerateRequest) (authToken TokenInfo, err error)

    // generate the access token
    GenerateAccessToken(ctx context.Context, rt GrantType, tgr *TokenGenerateRequest) (accessToken TokenInfo, err error)

    // refreshing an access token
    RefreshAccessToken(ctx context.Context, tgr *TokenGenerateRequest) (accessToken TokenInfo, err error)

    // use the access token to delete the token information
    RemoveAccessToken(ctx context.Context, access string) (err error)

    // use the refresh token to delete the token information
    RemoveRefreshToken(ctx context.Context, refresh string) (err error)

    // according to the access token for corresponding token information
    LoadAccessToken(ctx context.Context, access string) (ti TokenInfo, err error)

    // according to the refresh token for corresponding token information
    LoadRefreshToken(ctx context.Context, refresh string) (ti TokenInfo, err error)

Manager authorization management interface

type ResponseType Uses

type ResponseType string

ResponseType the type of authorization request

const (
    Code  ResponseType = "code"
    Token ResponseType = "token"

define the type of authorization request

func (ResponseType) String Uses

func (rt ResponseType) String() string

type TokenGenerateRequest Uses

type TokenGenerateRequest struct {
    ClientID            string
    ClientSecret        string
    UserID              string
    RedirectURI         string
    Scope               string
    Code                string
    CodeChallenge       string
    CodeChallengeMethod CodeChallengeMethod
    Refresh             string
    CodeVerifier        string
    AccessTokenExp      time.Duration
    Request             *http.Request

TokenGenerateRequest provide to generate the token request parameters

type TokenInfo Uses

type TokenInfo interface {
    New() TokenInfo

    GetClientID() string
    GetUserID() string
    GetRedirectURI() string
    GetScope() string

    GetCode() string
    GetCodeCreateAt() time.Time
    GetCodeExpiresIn() time.Duration
    GetCodeChallenge() string
    GetCodeChallengeMethod() CodeChallengeMethod

    GetAccess() string
    GetAccessCreateAt() time.Time
    GetAccessExpiresIn() time.Duration

    GetRefresh() string
    GetRefreshCreateAt() time.Time
    GetRefreshExpiresIn() time.Duration

TokenInfo the token information model interface

type TokenStore Uses

type TokenStore interface {
    // create and store the new token information
    Create(ctx context.Context, info TokenInfo) error

    // delete the authorization code
    RemoveByCode(ctx context.Context, code string) error

    // use the access token to delete the token information
    RemoveByAccess(ctx context.Context, access string) error

    // use the refresh token to delete the token information
    RemoveByRefresh(ctx context.Context, refresh string) error

    // use the authorization code for token information data
    GetByCode(ctx context.Context, code string) (TokenInfo, error)

    // use the access token for token information data
    GetByAccess(ctx context.Context, access string) (TokenInfo, error)

    // use the refresh token for token information data
    GetByRefresh(ctx context.Context, refresh string) (TokenInfo, error)

TokenStore the token information storage interface



Package oauth2 imports 6 packages (graph) and is imported by 5 packages. Updated 2020-12-24. Refresh now. Tools for package owners.