oauth2

package
v1.0.80 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

Client OAuth2客户端

func NewClient

func NewClient(rpc *zrpc.Client, config Config) *Client

NewClient 场景OAuth2客户端

func (*Client) AuthCodeURL

func (c *Client) AuthCodeURL(ctx context.Context) (state string, url string)

AuthCodeURL 获取授权码URL地址

func (*Client) AuthorizationCodeToken

func (c *Client) AuthorizationCodeToken(ctx context.Context, code string, parser TokenParser) (*Token, error)

AuthorizationCodeToken 授权码方式获取Token

func (*Client) ClientCredentialsToken

func (c *Client) ClientCredentialsToken(ctx context.Context, parser TokenParser) (*Token, error)

ClientCredentialsToken 客户端凭证

func (*Client) PasswordCredentialsToken

func (c *Client) PasswordCredentialsToken(ctx context.Context, username, password string, parser TokenParser) (*Token, error)

PasswordCredentialsToken 密码方式获取Token

func (*Client) RefreshToken

func (c *Client) RefreshToken(ctx context.Context, refreshToken string, parser TokenParser) (*Token, error)

RefreshToken 刷新Token

type Config

type Config struct {
	ClientID     string    // 应用ID
	ClientSecret string    // 应用证书
	RedirectURI  string    // 回调地址
	Scope        string    // 授权权限
	Endpoint     Endpoint  // URL地址
	Parameter    Parameter // 参数生成
	Formatter    Formatter // 序列化方式
}

Config OAuth2服务相关配置

func (Config) AuthCodeURL

func (c Config) AuthCodeURL(ctx context.Context) (state string, url string)

AuthCodeURL 获取授权码URL地址

type Endpoint

type Endpoint struct {
	AuthorizeURL    string
	AccessTokenURL  string
	RefreshTokenURL string
}

Endpoint URL地址

type Formatter

type Formatter int

Formatter 请求参数序列化方式(JSON:Post、Form:Post、Query:Get)

const (
	JSONFormatter  Formatter = 1 // JSON + POST方式
	FORMFormatter  Formatter = 2 // FORM + POST方式
	QueryFormatter Formatter = 3 // Query + GET方式
)

序列化方式

type Parameter

type Parameter interface {
	// AuthCodeParams 生成请求授权码URL参数,直接拼接在地址后面
	AuthCodeParams(ctx context.Context, config Config, state string) string
	// AuthCodeTokenParams 生成授权码请求token参数
	AuthCodeTokenParams(ctx context.Context, config Config, code string) map[string]string
	// PasswordTokenParams 生成密码请求token参数
	PasswordTokenParams(ctx context.Context, config Config, username, password string) map[string]string
	// RefreshTokenParams 生成刷新token参数
	RefreshTokenParams(ctx context.Context, config Config, refreshToken string) map[string]string
	// ClientCredentialsParams 生成客户端凭证参数
	ClientCredentialsParams(ctx context.Context, config Config) map[string]string
}

Parameter 参数配置

type Token

type Token struct {
	AccessToken  string      // 访问Token
	TokenType    string      // Token类型
	RefreshToken string      // 刷新Token
	ExpiresIn    int64       // 过期时间(单位秒)
	Scope        string      // 授权权限
	Raw          interface{} // 自定义
}

Token OAuth2 Token

type TokenParser

type TokenParser interface {
	Parse(data []byte) (token *Token, err error)
}

TokenParser Token解析

Jump to

Keyboard shortcuts

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