15 lines
1.8 KiB
Markdown
15 lines
1.8 KiB
Markdown
# 新设备短信验证与 6 位密码
|
|||
|
|
|
||
|
|
版本:`0.98.0-rc.trusted-login1`,基于线上 `0.97.1-rc.tencent-captcha1`。
|
||
|
|
|
||
|
|
- 新密码接受 6–64 个 Unicode 字符,前后端与管理员手机号开通命令保持一致。
|
||
|
|
- 新浏览器首次密码登录,即使密码和人机验证正确,也只返回 `NEW_DEVICE_SMS_REQUIRED`。页面转到现有 `LOGIN` 短信流程,保留手机号和登录后的原始去向。
|
||
|
|
- 短信验证成功后签发 30 天、HttpOnly、Secure、SameSite=Lax 的设备验证 Cookie。家庭端与管理端隔离,验证绑定手机号和当前密码摘要。退出保留记录;换浏览器、清除 Cookie、到期或管理员重置密码后重新验证。
|
||
|
|
- 修改密码撤销其他设备的验证记录,当前浏览器已有且未过期的记录可保留。设备验证不能用于跳过密码、人机验证或短信找回密码。
|
||
|
|
- 迁移 72 新增 `trusted_login_device`。服务端只保存随机令牌的摘要,过期及已撤销记录由维护任务清理。迁移为新增表,旧版本可兼容回退。
|
||
|
|
- 小程序密码接口同样检查设备验证,短信成功响应返回 `trusted_device_token` 和 `trusted_device_expires_in`;客户端按服务地址、账号和 portal 保存。小程序源码已配套更新,需按原有微信发布流程发布客户端。
|
||
|
|
|
||
|
|
发布使用当前线上源代码加本次相关文件构建;保留现有短信配置、人机验证策略和其他业务页面。发布前执行加密数据库备份并在隔离数据库验证恢复。
|
||
|
|
|
||
|
|
验证包括 PostgreSQL/Redis 中的客户与管理端短信流程、设备证明到期/伪造/账号及角色隔离、密码变更撤销、原生接口防绕过;网页实际组件测试覆盖新设备提示、登录短信用途、5 位拒绝/6 位接受、找回密码及移动端布局。未代替用户收取真实短信或发布微信客户端。
|