Documentation ¶
Overview ¶
定义 oauth2 接口
Index ¶
Constants ¶
View Source
const (
OAuth2TypeDefault = "oauth2"
)
Variables ¶
View Source
var ( OAuth2Infos = make(map[string]*OAuth2Info) // 存储 OAuth2 服务配置信息 OAutherMap = make(map[string]OAuther) // 存储 OAuth2 认证接口实现 )
OAuth2 配置信息和授权处理器的全局映射
Functions ¶
Types ¶
type BasicUserInfo ¶
type BasicUserInfo struct { Name string `json:"name"` Email string `json:"email"` Display string `json:"display"` }
OAuth2 用户的基本信息
type OAuth2Default ¶
func (*OAuth2Default) UserInfo ¶
func (o *OAuth2Default) UserInfo(token *oauth2.Token) (*BasicUserInfo, error)
用于获取用户信息,接受 token,获取用户信息
type OAuth2Info ¶
type OAuth2Info struct { ClientId string // 客户端 ID ClientSecret string // 客户端 Secret Scopes []string // 授权的 Scope AuthUrl string // OAuth2 授权 URL TokenUrl string // OAuth2 Token URL ApiUrl string // 获取用户信息的 API URL Enabled bool // 是否启用 OAuth2 服务 ApiMapping map[string]string // API 字段映射 }
OAuth2 服务的配置信息
type OAuther ¶
type OAuther interface { // 通过令牌获取用户信息 UserInfo(token *oauth2.Token) (*BasicUserInfo, error) // 生成 OAuth2 授权 URL AuthCodeURL(state string, opts ...oauth2.AuthCodeOption) string //使用授权码换取 OAuth2 访问令牌 Exchange(ctx context.Context, code string, opts ...oauth2.AuthCodeOption) (*oauth2.Token, error) // 基于访问令牌生成一个 HTTP 客户端,便于访问 OAuth2 提供商的 API Client(ctx context.Context, t *oauth2.Token) *http.Client }
接口定义了 OAuth2 服务的方法
Click to show internal directories.
Click to hide internal directories.