跳转到内容
Glossia 文档
⌘K
简体中文
English Deutsch Español Français 日本語 한국어 Português (Brasil) 简体中文
登录
⌘K
esc

认证

Edition: Community and Enterprise Compare editions

浏览器登录、访问令牌和认证端点。

本页面介绍 开放授权 (OAuth)、证明密钥代码交换 (PKCE) 和 应用程序接口 (API)。下方链接的协议规范以请求规范(RFCs)形式发布。

## 认证方法

Glossia 支持浏览器会话和承载令牌。承载令牌可以通过以下授权流程发放,也可以创建为 账户令牌。

### 浏览器会话

当通过 Web 界面登录时,Glossia 使用基于会话的身份验证。您通过 GitHub、GitLab、Google 或配置的组织机构身份提供商使用 Assent 库进行身份验证。登录成功后,会设置会话 cookie 并在后续请求中使用。

组织可以配置 Google Workspace 或 Okta,并在允许自动注册之前验证其工作电子邮件域。请查看 配置组织登录 以了解设置和账户关联要求。

### Bearer 令牌 (OAuth 2.1)

对于 API 访问(例如来自 CLI 或其他工具),Glossia 实现了带有授权码流和 PKCE 的 OAuth 2.1。客户端获取 Bearer 令牌并将其包含在 Authorization 请求头:

Authorization: Bearer <access_token>

### OAuth 2.1 流程

### 1. 动态客户端注册

客户端使用元数据调用 POST /oauth/register 进行注册。这遵循 RFC 7591。

{
"client_name": "My Tool",
"redirect_uris": ["http://localhost:8080/callback"],
"grant_types": ["authorization_code"]
}

Glossia 返回 client_id 和 client_secret。此示例中的 localhost 重定向属于您的开发应用程序。生产应用程序应注册自己的安全回调地址。

### 2. 授权请求

客户端将用户重定向到 /oauth/authorize 并带有 PKCE 参数:

GET /oauth/authorize?response_type=code&client_id=<id>&redirect_uri=<uri>&code_challenge=<challenge>&code_challenge_method=S256&state=<state>

所有客户端都必须支持 PKCE。 仅支持 S256 挑战方法。

### 3. 令牌交换

用户批准后,客户端在 POST /oauth/token 处将授权代码交换为令牌:

POST /oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=<code>&redirect_uri=<uri>&client_id=<id>&client_secret=<secret>&code_verifier=<verifier>

响应包括访问令牌,可选刷新令牌。

### 4. 令牌刷新

访问令牌过期时,使用刷新令牌:

POST /oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&refresh_token=<token>&client_id=<id>&client_secret=<secret>

有关权限范围、成员访问和资源级别检查,请查看 授权。

### 发现端点

Glossia 在标准的已知 URL 上发布元数据,以便客户端可以自动发现端点。

### OAuth 授权服务器元数据 (RFC 8414)

GET /.well-known/oauth-authorization-server

返回颁发者、端点、支持的作用域、授权类型和验证码挑战方法。

### 受保护资源元数据 (RFC 9728)

GET /.well-known/oauth-protected-resource

返回资源标识符、授权服务器、支持的作用域和承载方法。

### 速率限制

注册受客户端地址限制。令牌、撤销和反查请求受客户端地址和客户端标识符限制:

端点 限制
POST /oauth/register 每分钟 5 次请求
POST /oauth/token 每分钟 30 次请求
POST /oauth/revoke 每分钟 30 次请求
POST /oauth/introspect 每分钟 30 次请求

当触发速率限制时,服务器返回 HTTP 429 (请求过多)。