myoauth2

package
v0.0.0-...-71c9d12 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

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

func NewOAuth2Service

func NewOAuth2Service()

初始化 Auth2Service

Types

type BasicUserInfo

type BasicUserInfo struct {
	Name    string `json:"name"`
	Email   string `json:"email"`
	Display string `json:"display"`
}

OAuth2 用户的基本信息

type OAuth2Default

type OAuth2Default struct {
	*oauth2.Config
	ApiUrl     string
	ApiMapping map[string]string
}

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 服务的方法

Jump to

Keyboard shortcuts

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