我希望用户能够选择角色作为登录过程的一部分。在用户给出他的username和password之后,服务器返回他所拥有的角色。如何实现一个对话框,用户可以在login函数结束之前从拥有的角色列表中选择一个角色?
login函数是一个常规的JavaScript函数,而不是function函数组件,因此我不能从它调用钩子(比如useContext)。
我有两个猜测:
LoginForm中将async回调函数传递给login方法(由useLogin()创建的方法)。在服务器使用login的roles响应user函数后,使用await调用这个回调函数。在这个回调函数中,我可以使‘选择一个角色’模式可见。我只是不明白,如何实现程序等待直到用户点击‘选择一个角色’模式中的submit按钮,并且只返回一个已解决的承诺。在JS中有可能吗?username和password,将其发送到后端,后端返回角色,显示“选择角色”模式,并仅在用户提交角色时调用authProvider login函数。我真的很好奇你对此的看法和想法。
发布于 2021-06-25 12:32:38
除了凭据之外,login钩子返回的useLogin函数还接受第二个参数:redirectTo。您可以提供一个自定义路由,它可以显示一个用于选择角色的专用页面,也可以提供一个显示您的模式的子路由的登录页面(如果您真的想要一个模式)。
一旦用户选择了它的角色,您就可以使用useRedirect钩子重定向到管理主页。
https://stackoverflow.com/questions/68127864
复制相似问题