如何解决如何通过登录 React Admin 实现额外的自定义对话框基于服务器响应?
我希望用户能够选择角色作为登录过程的一部分。
在用户给出他的 username
和 password
后,服务器发回他拥有的角色。
如何在 login
的 authProvider
功能结束之前实现一个对话框,用户可以在其中从拥有的角色列表中选择一个角色?
login
函数是一个普通的 JavaScript 函数,而不是一个 React 函数组件,所以我不能从中调用钩子(比如 useContext
)。
我有两个猜测:
-
在
LoginForm
中,将async
回调函数传递给login
方法(由useLogin()
创建。服务器在 {{1} } 函数和login
的roles
,用user
调用这个回调函数。 在这个回调函数中,我可以使“选择角色”模式可见。我只是不明白,我怎样才能实现程序一直等到用户点击“选择角色”模式中的await
按钮,然后才返回一个已解决的承诺。在 JS 中可以吗? -
创建一个“登录前”表单,接受
submit
和username
,将其发送到后端,后端返回角色,显示“选择角色”模式,并仅在用户提交角色时调用password
authProvider
函数。
我真的很好奇你对此的看法和想法。
解决方法
login
钩子返回的 useLogin
函数除了凭据之外还接受第二个参数:redirectTo
。您可以提供一个自定义路由,该路由将显示用于选择角色的专用页面或带有子路由的登录页面,如果您确实需要一个模态,则该子路由会显示您的模态。
一旦用户选择了其角色,您就可以使用 useRedirect
钩子重定向到管理员主页。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。