【发布时间】:2020-10-05 13:15:01
【问题描述】:
我从 React-Admin v2 升级到 v3 已经有一段时间了。我快完成了,但我需要微调一些内容。
使用 v2,当用户在没有令牌的情况下访问我们的 domain.tld 网站时,Promise 被拒绝,用户被重定向到 domain.tld/#/login。不显示错误/警告消息。
使用 v3,如果出现同样的情况,Promise 也会被拒绝,用户会被重定向到登录页面,但会出现 ra.auth.auth_check_error 警告消息 - 两次!
我理解逻辑,在大多数情况下显示警告消息可能很有用。例如,如果未登录的用户尝试访问 domain.tld/#/settings,则应将用户重定向到登录页面并通知“您必须先登录”。但是,如果用户第一次访问该网站,他会按预期被重定向到登录页面,但在这种情况下,不应显示警告消息。在这种情况下,用户很可能知道他/她必须先登录才能看到任何内容,因此没有必要警告用户,因为他/她没有做错任何事情。
我不知道解决这个问题有多容易。也许只是完全删除通知?怎么做?
也许一些例外是另一种解决方案,如果用户尝试访问根域 domain.tld/#/,则不会显示警告消息。并且会显示其他路线。如何做到这一点?
Promise.reject() 之后发生的功能能否以某种方式被覆盖?
我在 authProvider.js 中的 checkAuth:
checkAuth: () => localStorage.getItem("token")
? Promise.resolve()
: Promise.reject(),
【问题讨论】:
标签: authentication react-admin