auth0通用重置密码页面,React

问题描述

我希望将用户引导到Auth0通用登录页面密码重置页面,我认为Auth0将以与我们使用的类似方式处理所需的功能

const { loginWithRedirect } = useAuth0()

我知道我可以打电话给loginWithRedirect(),然后单击“忘记密码”,但是这需要2次点击,我希望我的“更改密码”按钮可以立即将我重定向。没有像loginWithRedirect({ action: 'signup' })}这样的技巧可以立即将我重定向注册表单。

我知道有关向Authentication API发送POST调用的信息,我想通过通用登录页面进行此操作。

解决方法

我得出的结论是这仍然是不可能的。

我们可以传递一个属性 screen_hint

auth0.loginWithRedirect({ screen_hint: "signup" })

所以如果能够做到这一点就太好了:

auth0.loginWithRedirect({ screen_hint: "password-reset" })

这个问题已经有人问过了here

答案是

不幸的是,这目前是不可能的。唯一的选择是使用登录页面或注册页面打开。这是通用登录页面而不是此 SDK 的限制,它暂时不允许打开其他屏幕作为默认设置。

最后,我们所做的是提供一个链接,当点击该链接时,会调用 API

,

不确定它是否有用,但我会解释我们如何在我工作的公司处理密码重置(使用 Auth0),这可能会将您推向略有不同的方向。

首先要理解的是;用户可能需要/想要重置密码的地方有 2 个。

  1. 当他们使用电子邮件/用户名和密码登录但忘记密码时。
  2. 他们想在登录后主动更改密码。

在这两种情况下,我们只需将 Auth0 身份验证 API 调用到 Change Password,它会向用户发送更改密码电子邮件。注意:对于#1,我们可能需要捕获电子邮件/用户名(即,如果我们还没有此信息),因为这是更改密码请求所必需的。对于 #2,我们应该已经在 ID 令牌中或通过 /userinfo 端点(请参阅 here)获得此信息。

更改密码电子邮件(可以在 Auth0 中进行模板化)具有指向通用登录“密码重置”小部件的链接。您可以使用默认小部件,它提供一些基本的样式/品牌。或者,您可以使用自己的 SPA 完全自定义它,例如见下文:

enter image description here

默认(非品牌/风格)密码重置小部件如下所示: enter image description here