登录与账号
保存站现役账号系统只使用 CP OAuth。旧版“制作验证剪贴板并领取 Token”的注册流程已经退出登录链路。
如何登录
- 打开保存站的“设置”页。
- 点击“使用 CP OAuth 登录”。
- 在 CP OAuth 页面完成授权,并确保账号已关联洛谷 UID。
- 授权成功后自动返回保存站。
- 设置页显示“已登录”、绑定的洛谷 UID 和本地权限值。
登录使用 OpenID Connect 授权码流程,并启用 state 与 PKCE 校验。OAuth 回调成功后,保存站为本地 registered_user 记录签发一个 Bearer Token,浏览器在后续 API 请求中使用它。
两类“用户”不要混淆
保存站有两类用途不同的数据:
- 登录用户:通过 CP OAuth 建立,只用于身份、权限、删除申请和通知。
- 展示用户:从洛谷公开资料抓取,用于文章作者和用户主页展示。
登录不会创建或覆盖展示用户资料;刷新洛谷用户主页也不会替你登录。
默认权限
普通 OAuth 用户拥有登录和创建普通工作流的权限。管理员权限是服务器端权限位,不通过前端自行申请。
管理员可能拥有用户管理、搜索维护、公告、文章发现和内容审核等权限,因此后台菜单会按权限动态显示。
Token 安全
虽然用户不再手工复制 Token,浏览器仍会本地保存登录凭据。请注意:
- 不要把浏览器本地存储、
Authorization请求头或 OAuth 回调 URL 发给他人; - 不要在 issue、群聊截图或录屏中暴露 Token;
- 公共电脑使用后应退出登录并清理站点数据;
- 怀疑泄露时,应联系维护者处理本地账号凭据。
退出登录
在“设置”页点击“退出登录”。这会清除当前浏览器的 Token 和本地认证状态,不会删除历史删除申请、通知或服务器账号记录。
常见登录错误
未关联洛谷账号
OAuth 返回的信息必须包含洛谷关联账号和有效的正整数 UID。缺少关联时,保存站无法建立账号。
登录状态过期或回调无效
OAuth state 默认有有效期,并且只能消费一次。长时间停留、重复刷新回调页或在多个标签中混用流程,可能产生 invalid_state。返回设置页重新发起登录即可。
同一洛谷 UID 已绑定其他 OAuth 身份
保存站拒绝把已绑定的洛谷 UID 静默改绑到不同 CP OAuth subject。遇到这种情况应联系维护者核对,不要反复创建账号。
旧 Token 页面
旧 Token 机制只用于历史说明。现役后端明确不使用旧 token 表完成身份验证,旧创建接口也不会再签发 Token。