Skip to content

Prism OAuth

Lumen 使用 Prism 完成用户登录。会话保存在 httpOnly Cookie 中(由 KV 提供后端);只要用户授权了 offline_access, Lumen 会在 Prism 访问令牌临近过期时自动刷新。

必要的 Scope

Lumen 在跳转 Prism 时申请以下 OAuth scope:

Scope用途
openidOpenID Connect 身份
profile显示名、头像
email账户邮箱
teams:read团队限制访问(allowed_team_id)使用
offline_access刷新令牌,长会话所需

在 Prism 中创建 OAuth 应用

  1. 打开 Prism → Connected AppsCreate app
  2. Redirect URI 设为 https://<你的域名>/callback
  3. 推荐启用 PKCE。如果在 InitPage 中关闭 PKCE,则需要提供 Client Secret。
  4. 复制 Client ID(以及 Client Secret,如果不使用 PKCE)。

填写 InitPage

字段说明
Prism Base URL例如 https://prism.siiway.org
Client ID来自 Prism
Use PKCE推荐
Client secret关闭 PKCE 时必填
Redirect URI默认 https://<host>/callback
Allowed team ID用逗号分隔多个团队 ID,只有这些团队成员可以登录

配置以 config:app 为键存储在 KV 中。如果想在 wrangler.jsonc 中通过环境变量 锁定团队限制,可以设置 ALLOWED_TEAM_ID

重新执行初始化

InitPage 由 KV 中的 init:configured 控制。要重新执行,请删除该键:

sh
bunx wrangler kv key delete --binding=KV init:configured

如果只想修改配置(不重建 schema),保持 init:configured = true, 通过 PUT /api/init/config 接口更新即可(开启 allowed_team_id 后只有 团队 owner 可以修改)。