Appearance
账号与密码
一句话:账号、邮箱验证、第三方登录、改密、TFA、头像、忘记密码、封禁与注销的规则都在本页。
本页说明账号信息、第三方登录、修改密码、忘记密码与封禁规则。
账号信息
| 字段 | 说明 |
|---|---|
| 用户名 | 注册时设置,3–30 位字母、数字、下划线 |
| 邮箱 | 用于登录、验证身份与密码重置 |
| 角色 | user / admin 等,由运营者通过 RBAC 分配 |
| 封禁状态 | 封禁时显示原因与解封时间 |
在「设置」页面查看与修改账号信息。
邮箱验证
本地注册会发送一封验证邮件。验证前仍可登录和浏览,但不能提交题目、参与社区或发送私信。链接 30 分钟内有效且只能使用一次;未收到邮件时可使用页面顶部的「重新发送验证邮件」按钮。
重新发送会被限流
连续请求重新发送会触发限流(两次发送之间需间隔约 1 分钟),提示「验证邮件发送过于频繁,请稍后再试」。
第三方登录
如果运营者配置了 GitHub 或 OIDC,登录页和注册页会显示对应的第三方登录按钮。
- 首次使用第三方账号登录时,系统会创建或匹配一个 Neuro OJ 账号。已验证的邮箱会优先匹配已有账号。
- 新创建且没有本地密码的账号会跳转到「设置密码」页面。设置密码后,仍可继续使用第三方登录。
- 已登录用户可以在「设置」页绑定其他已启用的第三方账号。绑定需要确认当前密码;解绑唯一的登录方式始终被拒绝,且没有本地密码的账号在解绑时无需再输入密码(本就没有可校验的本地密码)。
- 第三方登录是否可用取决于运营者配置。若页面没有显示按钮,说明对应 Provider 尚未启用。
修改密码
在「修改密码」页面输入当前密码与新密码(规则与注册相同)。
改密会使其他登录失效
修改成功后旧令牌立即失效,其他设备上的登录状态会被撤销,需要重新登录。
首次改密
运营者创建的账号若要求首次改密,登录后会被强制引导到修改密码页面;在完成改密前,除改密、查看自己与登出外的接口都会被拒绝。
两步验证(TFA)
「设置」页可以启用或禁用两步验证:
- 启用:生成 TOTP secret 与
otpauth://链接,使用任意标准 TOTP 应用(如 Google Authenticator)扫码绑定;确认后保存一次性恢复码(共 10 个)。 - 登录:已启用 TFA 的账号在输入用户名/密码后,需要继续输入 6 位动态验证码或恢复码。
- 恢复码:仅显示一次,请妥善保存;可在设置页重新生成(会作废旧码)。
- 禁用:需要输入当前验证码或恢复码确认。
不要随意轮换 TFA_ENCRYPTION_KEY
轮换该密钥会使已保存的 TOTP secret 无法解密,用户将无法通过 TOTP 验证。生产环境不得随意轮换(该项由运营者配置)。
头像
在「设置」页可上传头像,支持 PNG / JPEG / WebP,体积上限 2MB。头像会显示在提交记录、排行榜与社区内容中。
忘记密码
登录页点「忘记密码」→ 输入邮箱 → 通过邮件内的重置链接设置新密码。安全行为:
- 链接 15 分钟内有效,且只能使用一次。
- 无论邮箱是否注册,页面提示相同(防枚举)。
- 新密码强度不足时不消耗令牌,可修正后重试。
封禁
临时封禁期间无法登录,登录时显示原因与解封时间。认为封禁有误请联系运营者。
封禁范围
封禁分 platform(限制使用平台:登录、评测等写操作)与 social(仅限制社区发布)。本页描述的「无法登录」指 platform 封禁。
注销账户
「设置」页的危险区域可通过当前密码确认注销。
注销不可恢复
注销后密码、第三方登录绑定、两步验证和角色会被清除,已有登录令牌立即失效;帖子、评论、题解和提交仍保留,公开作者统一显示为「已注销用户」。此操作不可恢复。