多 key:OAuth 登录签发附加 key 不再轮换,keys 管理端点
This commit is contained in:
1 parent
aa5ad41eba
commit
7b85b4a4fd
7 files changed
+544
-37
No files matched your search
+17
-4
@@ -135,10 +135,23 @@ client_secret(只走环境变量),不是无认证后门。
|
||||
只绑 `127.0.0.1:8765`,没有公网入口、没有 TLS,这一步是部署
|
||||
前置——需要在部署侧配反向代理 + TLS 证书并把公网域名指到
|
||||
server,再把该域名下的回调地址填进 OAuth 应用的注册信息里。
|
||||
- 登录后 API key 的保存与轮换规则:新用户拿到创建时生成的 key;
|
||||
已存在用户每次 OAuth 登录都会轮换 key(旧 key 立即失效),
|
||||
因此不要把旧 key 存到多处长期复用;key 明文只在回调成功页/
|
||||
响应里出现一次,丢了只能重新走一次 OAuth 登录拿新 key。
|
||||
- 登录后 API key 的保存与多 key 规则:新用户拿到创建时生成的
|
||||
primary key;已存在用户每次 OAuth 登录签发一个附加 key
|
||||
(label 为 `oauth:<provider>`),旧 key(primary 与之前的附加
|
||||
key)全部继续有效,不再轮换——登录不会打断已存得到处都是的
|
||||
旧 key。响应里的 `api_key_rotated` 字段为向后兼容保留,恒为
|
||||
False;签发附加 key 时记审计 `api_key_issued`(不再记
|
||||
`api_key_rotated`)。key 明文只在回调成功页/响应里出现一次,
|
||||
丢了只能重新走一次 OAuth 登录拿新 key(旧 key 不受影响)。
|
||||
- API keys 管理(全部只操作认证用户自己的 key,须持本站 key):
|
||||
`GET /users/me/keys`(列出 primary(id 为 "legacy")+ 附加 key,
|
||||
含 label、后 4 位提示、创建/最近使用/撤销时间,绝不返回明文
|
||||
与哈希)、`POST /users/me/keys`(body 可含 label,签发附加 key,
|
||||
明文只在本次响应里出现一次)、`DELETE /users/me/keys/{id}`
|
||||
(撤销一个 key,primary 用 id "legacy",无此 key 或已撤销返回
|
||||
404)、`POST /users/me/keys/revoke-others`(撤销除本次请求 key
|
||||
之外的全部自己的 key,返回撤销数)。附加 key 认证成功时更新
|
||||
last_used_at,但每小时最多写一次(认证是热路径)。
|
||||
- 已有本站账号的绑定流程(已实现):持本站 key 调
|
||||
`POST /oauth/{provider}/bind/initiate`(body 含 client_id +
|
||||
redirect_uri),返回 `{provider, state, authorization_url}`,
|
||||
|
||||
Reference in new issue
Block a user