已连接应用
应用关系的两端:用户如何查看和管理连接到自己账号的 应用,以及开发者如何申请审核级权限。
面向用户:授权与授权记录
当用户在授权同意页上批准你的应用时,就创建了一条授权记录 —— 也就是他们已授权的权限范围集合。用户可以随时查看和吊销这些记录。
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /developer/grants | 列出当前用户已授权的应用。 |
| POST | /developer/grants/{clientId}/revoke | 吊销某个应用对该用户的访问权限。 |
| GET | /oauth/consents | 列出已授权的应用(授权视图)。 |
| POST | /oauth/consents/{clientId}/revoke | 断开某个应用 —— 吊销授权并终止它的令牌。 |
每条授权记录都记录了应用以及被授予的权限范围。吊销对已有令牌 是立即且不可逆的:断开一个应用会使它持有的 访问令牌和刷新令牌失效,因此在用户重新授权之前,该应用无法再 代表该用户执行任何操作。
这对你的应用意味着什么: 把令牌失效当作一件正常的事来处理。
用户随时都可能断开连接;一旦断开,你的调用就会开始返回
401 invalid_token,此时你应该把用户重新引导到
授权流程,而不是假设令牌永远有效。
面向开发者:项目申请
开发者项目是可选的。注册应用 —— 无论机密还是公开,带读取、草稿和发布
权限范围 —— 都是自助的,不需要任何申请。该项目解锁的是审核级权限范围:
已批准的开发者可以在注册时或通过 PATCH 直接给应用加上 account:read、
a2a 和 recipe:express,而不必逐个按 scope 申请。准入需要邀请:
| 方法 | 路径 | 用途 |
|---|---|---|
| POST | /developer/applications | 申请加入开发者项目(需邀请)—— { invite_code, motivation },两者均必填。 |
| GET | /developer/applications/my | 你的开发者项目申请及其状态。 |
一份申请的 status 取值为 pending、approved 或 rejected。在已有申请
处于 pending 时再次申请会返回 409。一旦获批,审核级权限范围就不再需要
按 scope 申请 —— 见注册应用。
开始动手或发布都不需要项目审批:一个公共的只读客户端 可以立刻按 RFC 7591 自助注册,门户也会自助注册 具备发布能力的应用。该项目只面向需要免逐项申请直接获得审核级 权限范围的应用。
相关内容
- 注册应用 —— 自助的应用生命周期
- 权限范围 —— 用户在授权同意页上看到并授予的东西
- OAuth 2.0 + PKCE —— 授权记录如何创建、令牌如何吊销
- OpenID Connect —— 登录,以及授权记录所绑定的身份