Documentation
¶
Overview ¶
Package auth 处理 Golem 的身份验证逻辑,支持 OAuth 2.0 流程及凭据持久化。
Index ¶
- func BuildAuthorizeURL(cfg OAuthProviderConfig, pkce PKCECodes, state, redirectURI string) string
- func DeleteAllCredentials() error
- func DeleteCredential(provider string) error
- func FilePath() string
- func SaveStore(store *Store) error
- func SetCredential(provider string, cred *Credential) error
- type Credential
- type OAuthProviderConfig
- type PKCECodes
- type Store
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildAuthorizeURL ¶
func BuildAuthorizeURL(cfg OAuthProviderConfig, pkce PKCECodes, state, redirectURI string) string
BuildAuthorizeURL builds OAuth authorize URL with PKCE.
func DeleteAllCredentials ¶
func DeleteAllCredentials() error
DeleteAllCredentials 清空整个身份验证存储并删除相关文件。
func DeleteCredential ¶
DeleteCredential 从存储中删除指定供应商的身份验证凭据。
func SetCredential ¶
func SetCredential(provider string, cred *Credential) error
SetCredential 保存指定供应商的身份验证凭据到存储中。
Types ¶
type Credential ¶
type Credential struct {
AccessToken string `json:"access_token"` // 访问令牌
RefreshToken string `json:"refresh_token,omitempty"` // 刷新令牌(可选)
Provider string `json:"provider"` // 供应商名称(如 "openai")
AuthMethod string `json:"auth_method"` // 认证方法(如 "oauth")
ExpiresAt time.Time `json:"expires_at,omitempty"` // 令牌过期时间
}
Credential 存储单个供应商的身份验证凭据(如访问令牌、刷新令牌等)。
func GetCredential ¶
func GetCredential(provider string) (*Credential, error)
GetCredential 获取指定供应商的身份验证凭据。
func LoginBrowser ¶
func LoginBrowser(cfg OAuthProviderConfig) (*Credential, error)
LoginBrowser 通过启动本地临时 HTTP 服务器并在浏览器中打开授权页面来完成 OAuth 登录。
func LoginDeviceCode ¶
func LoginDeviceCode(cfg OAuthProviderConfig) (*Credential, error)
LoginDeviceCode completes OAuth login via device-code flow.
func RefreshAccessToken ¶
func RefreshAccessToken(cred *Credential, cfg OAuthProviderConfig) (*Credential, error)
RefreshAccessToken refreshes OAuth access token when refresh token exists.
func (*Credential) NeedsRefresh ¶
func (c *Credential) NeedsRefresh() bool
NeedsRefresh 检查凭据是否即将过期(5分钟内),需要刷新。
type OAuthProviderConfig ¶
type OAuthProviderConfig struct {
Issuer string // 供应商的发行者 URL
ClientID string // OAuth 客户端 ID
Scopes string // 请求的权限范围
Port int // 本地回调服务器监听的端口
}
OAuthProviderConfig 定义了单个 OAuth 供应商的元数据。
func OpenAIOAuthConfig ¶
func OpenAIOAuthConfig() OAuthProviderConfig
OpenAIOAuthConfig 返回 OpenAI OAuth 的默认配置。
type PKCECodes ¶
PKCECodes holds verifier/challenge pair for OAuth PKCE.
func GeneratePKCE ¶
GeneratePKCE creates random verifier and S256 challenge.