1

我希望用户能够在登录过程中选择一个角色。用户给出他的and后,服务器发回他拥有的角色。如何实现一个对话框,用户可以在功能结束之前从拥有的角色列表中选择一个角色?usernamepasswordloginauthProvider

login函数是一个常规的 JavaScript 函数,而不是 React 函数组件,所以我不能从中调用钩子(如useContext)。

我有两个猜测:

  1. 在将LoginForm回调async函数传递给login方法(由 . 创建的内容useLogin()。服务器在login函数中使用 的响应rolesuser,使用 调用此回调函数await。在此回调函数中,我可以使“选择角色”模式可见。我只是没有看到,我怎样才能实现程序等到用户点击submit“选择角色”模式中的按钮,然后才返回已解决的承诺。在 JS 中可能吗?

  2. 创建一个“预登录”表单,接受usernameand password,将其发送到后端,后端返回角色,显示“选择角色”模式,并authProvider login仅在用户提交角色时调用该函数。

我真的很好奇你对此的看法和想法。

4

1 回答 1

1

login钩子返回的函数除了useLogin凭据之外还接受第二个参数:redirectTo。您可以提供一个自定义路由,该路由将显示用于选择角色的专用页面或带有子路由的登录页面,如果您真的想要一个模态,则显示您的模态。

useRedirect一旦用户选择了它的角色,你就可以使用钩子重定向到管理主页。

于 2021-06-25T12:32:38.033 回答