重置密码
当你配置了有效的 Email 连接器 或 SMS 连接器 后,密码找回功能会自动为你启用。用户可以通过提供其注册的邮箱地址或手机号来重置密码。
忘记密码用于账户恢复
一旦启用重置密码功能,登录表单下方会显示一个“忘记密码”链接按钮。用户可以点击“忘记密码”链接来启动密码重置流程。
没有看到“忘记密码”链接?请确保你已配置有效的 Email 或 SMS 连接器。
- 访问登录页面:用户访问登录页面。
- 点击忘记密码链接:用户点击“忘记密码”链接。
- 输入邮箱 / 手机号:点击“忘记密码”链接后,用户会被重定向到一个新页面,在那里可以输入其注册的邮箱地址或手机号。
- 发送验证码:Logto 会向用户提供的邮箱地址或手机号发送验证码,并跳转到验证码验证页面。
- 输入验证码:用户输入收到的邮箱或手机验证码。Logto 会验证验证码及与该邮箱地址或手机号关联的用户身份。
- 输入新密码:验证码验证成功后,系统会提示用户输入新密码。
- 密码重置成功:如果所提供的新密码符合密码策略要求,密码将被成功更新。
- 重定向到登录页面:用户将被重定向到登录页面,使用新密码登录。

登录后修改密码
已认证 (Authentication) 用户可以通过你的应用内账户设置体验更改(或首次设置)密码。参见 账户设置 了解如何通过 Account API 实现此功能。
检查用户是否有密码
用户数据中有一个布尔字段 hasPassword
,用于指示该用户当前是否存储有密码凭证。
你可以通过以下方式获取 hasPassword
:
- Management API:例如
GET /api/users/:id
(包含在用户对象中) - 自定义令牌声明:将
hasPassword
注入到 ID / 访问令牌中(这样你的前端可以无需额外 API 调用就分支 UI)
然后调用 Account API 端点来设置或更新密码(请求细节见账户设置指南)。对于从未设置过密码的用户,你不需要(也不应要求)旧密码字段。
即使你的注册方式要求邮箱 / 手机 / 用户名注册时“设置密码”,通过纯 社交登录 创建的用户默认会跳过密码创建,以减少摩擦。这些用户的 hasPassword = false
,直到他们之后主动设置密码。除非你的安全模型要求,否则避免在社交注册后强制立即设置密码——延迟、上下文感知的提示通常转化率更高。
自定义密码策略
自定义密码长度、字符要求和词语限制,以满足你的业务安全需求,同时提供良好的用户体验。这些设置可在 安全性 > 密码策略 部分进行配置。查看 密码策略 文档了解更多信息。
常见问题
如何在密码重置成功后让用户登出?
订阅 PostResetPassword
Webhook 事件,以在用户成功重置密码时收到通知。你可以随后触发 登出 操作,使用户当前会话失效并重定向到登录页面。
如何向用户邮箱发送密码重置链接?
你可以创建自托管的密码重置端点,并利用 Logto SDK 发起一次登录请求,将 first_screen
设置为 reset-password
。这样会无缝地将用户重定向到密码重置页面。