账号
本文介绍 RPG Roleplay 的账号全流程:创建账号、登录、找回密码、免密码魔法链接,以及自部署局域网下的邀请链接注册。
注册账号
标准注册(服务器部署)
- 打开登录页,切换到「注册」标签。
- 填写以下字段:
- 用户名(必填):登录时使用,注册后不可更改(管理员可修改)。
- 昵称(可选):显示在游戏界面中,可随时更改。
- 邮箱(必填):用于验证身份和找回密码,格式需包含
@。 - 出生日期(必填):平台要求年满 18 周岁。
- 密码(必填):至少 8 位,服务端以 Argon2id 算法加密存储,页面不回显。
- 同意服务条款与隐私政策(必填复选框)。
- 确认已年满 18 周岁(必填复选框)。
- 若后台启用了人机验证(Cloudflare Turnstile),页面会显示验证组件,完成后才能提交。
- 点击「注册」,系统向邮箱发送一封包含 6 位数字验证码的邮件。
邮箱验证
注册提交成功后,页面自动切换到验证码输入步骤:
- 在 6 位数字框中输入邮件里的验证码,验证码输入完整后自动提交。
- 验证码有时效,若未收到可点击「重新发送」(每次发送后有 60 秒冷却)。
- 验证通过后系统颁发登录 cookie,直接进入平台,无需再次登录。
验证码邮件有时会进入垃圾邮件文件夹,请检查。
自部署/本地模式
自部署实例(local/desktop 部署模式)注册流程略有不同:
- 无邮箱验证,注册即登录(
auto_verified)。 - 首位注册用户自动获得管理员权限。
- 若管理员设置了 Setup Token,注册表单会额外出现「Setup Token」字段,须填入正确值才能完成第一个账号的创建。
登录
密码登录
- 打开登录页,保持默认「登录」标签。
- 填写用户名或邮箱 + 密码,点击「登录」。
- 登录成功后跳转至平台主界面(或 URL 中
?next=指定的页面)。
连续登录失败多次会触发速率限制,须等待一段时间后再试。管理员可在管理后台手动解除锁定。
邮箱验证码登录(免密码)
不想输密码,或忘记密码又来不及重置时,可使用验证码登录:
- 点击「验证码登录」标签。
- 填写注册时绑定的邮箱,点击「发送验证码」。
- 输入邮件中收到的 6 位数字验证码,通过后直接登录。
验证码同样有 60 秒重发冷却。此方式要求账号已绑定邮箱,自部署的无邮箱账号不适用。
忘记密码与重置
- 在登录页点击「忘记密码」链接,进入重置申请页。
- 输入注册时绑定的邮箱,点击「发送重置邮件」。
- 无论该邮箱是否存在,页面均返回成功提示(防止枚举攻击),请检查收件箱(含垃圾邮件)。
- 邮件中包含一个带有
#reset?token=…的链接,点击后登录页自动切换到「设置新密码」步骤。 - 输入新密码(不少于 8 位),再次输入确认,点击「确认修改」。
- 重置成功后约 1.8 秒自动跳回登录页,用新密码登录即可。
注意事项:
- 重置链接一次性有效,用过即失,再次点击会提示「链接已使用」。
- 链接有过期时间,若提示「链接无效或已过期」,请重新申请重置邮件。
魔法链接(免登录直接进入)
魔法链接是桌面/本地部署专属的便捷入口,由服务主进程铸造、仅限本机控制台调用,不依赖密码。
工作原理:
- 桌面端在启动时调用
POST /api/local/account/magic-token(仅限回环 127.0.0.1),获得一次性 token。 - 浏览器访问
/api/auth/desktop-login?token=…,服务端验证 token 有效性,颁发 session cookie 并重定向进入平台。 - Token 一次性,消费后失效;链接有防开放重定向保护,
next参数只能是站内相对路径。
此方式仅在本地/自部署/桌面部署模式下可用,服务器部署调用会返回 404。
Landing 魔法链接(meeting-link 形式):
从 Landing 页面生成的魔法链接形如 /Login.html?magic=TOKEN&email=EMAIL,被前端捕获后通过 POST /api/auth/magic-consume 验证,验证通过直接登录,无需再输入 OTP。
邀请链接加入(自部署局域网)
自部署实例的管理员可以生成邀请链接,让局域网内的其他用户快速创建账号。
管理员操作(本机控制台):
- 调用
POST /api/local/account/invite-token(仅限回环 127.0.0.1),获得邀请 token。 - 将生成的链接
/Login.html?invite=TOKEN分享给局域网内其他用户。 - 不想继续邀请时,调用
POST /api/local/account/invite-token/revoke撤销全部邀请 token。
受邀用户操作:
- 在浏览器打开邀请链接,登录页自动切换到「加入」界面。
- 填写用户名、密码(不少于 8 位),勾选「确认已年满 18 周岁」。
- 点击「加入」,注册即登录,无需邮箱验证。
邀请链接为可复用 token,同一链接可供多人使用,直到管理员主动撤销。邀请注册的账号无邮箱,不支持密码找回和验证码登录。
Apple 登录(iOS 客户端)
iOS 原生客户端支持 Apple Sign-In,无需输入密码:
- 在 iOS App 中点击「Sign in with Apple」按钮。
- App 获取 Apple 颁发的
identity_token,发送到POST /api/auth/apple验证。 - 服务端校验 Apple 签名,查找或创建账号,颁发 session cookie 登录。
- 若为首次使用 Apple 登录(Apple 仅在首次授权时传递邮箱),账号会自动关联 Apple ID;后续登录通过 Apple 子系统 ID(
sub)匹配,无需再次授权邮箱。 - 若账号不含昵称,登录后会跳转至昵称补填步骤(
needs-profile),填写用户名即可进入平台。
此方式仅在 iOS 原生客户端可用,Web 端暂不支持。
常见问题
验证码邮件收不到
- 检查垃圾邮件 / 促销邮件文件夹,发件域为平台配置的 Resend 发信域。
- 等待 60 秒冷却后,在验证码步骤点击「重新发送」。
- 若多次未收到,联系实例管理员确认服务端邮件发送配置(SMTP/Resend)是否正常。
- 自部署实例若未配置邮件服务,注册流程会走免验证路径(
auto_verified),无需输入验证码。
邀请链接打开报错
- 「链接无效」:token 已被管理员撤销,或链接中
invite=参数被截断,请联系管理员重新生成。 - 「用户名已被占用」:换一个用户名重试,注册用户名在同实例内唯一。
- 「密码过短」:密码须不少于 8 位。
- 「本接口仅本地部署可用」:邀请注册接口(
/api/local/register)仅在自部署/本地模式下可用,标准服务器部署不开放此端点。
密码重置链接失效
- 链接为一次性,已使用过的链接无法再次使用,请重新申请。
- 链接有时效,超过有效期后同样失效,请重新申请。
- 邮件客户端有时会自动预取链接(导致 token 被提前消费),建议手动复制链接而非直接点击。
登录被锁定
连续多次密码错误会触发速率限制,提示等待秒数后重试。若账号被错误锁定,联系实例管理员在管理后台执行解锁操作。
邀请链接注册的账号如何找回密码
邀请注册的账号无邮箱,无法通过找回密码流程重置。解决方法:
- 联系管理员直接在后台重置密码。
- 或重新通过邀请链接注册一个新账号(数据不会迁移)。