当前位置: 首页 > 知识库问答 >
问题:

Redux Persistent重新水化上一个身份验证状态太晚

夏侯兴学
2023-03-14

我有设置路由,意味着通过身份验证,以重定向用户到登录页面,如果未经身份验证。我还设置了redux-persist来自动脱水我的身份验证状态,以便用户在刷新时保持登录。问题是补液太晚,用户已经被重定向到登录页面

第一个位置更改是对经过身份验证的路由的更改,第二个位置更改是对登录的更改。注意补液是在这些之后。理想情况下,它至少应该在@@init之后?

共有1个答案

吉栋
2023-03-14

用于使存储持久化的persistStore函数具有第三个param回调,该函数在存储重新水化完成后调用。你必须用某种预加载器来启动你的应用程序,它等待补液发生,并且只在它完成后才呈现你的完整应用程序。

redux-persist文档甚至有一个针对这种情况的方法。在您的示例中,所有React-Router内容也应该在初始加载程序中呈现:

export default class Preloader extends Component {

  constructor() {
    super()
    this.state = { rehydrated: false }
  }

  componentWillMount(){
    persistStore(this.props.store, {}, () => {
      this.setState({ rehydrated: true });
    })
  }

  render() {
    if(!this.state.rehydrated){
      return <Loader />;
    }
    return (
      <Provider store={store}>
        <ConnectedRouter history={history}>
          <App />
        </ConnectedRouter>
      </Provider>
    );
  }
}

const store = ...; // creating the store but not calling persistStore yet
ReactDOM.render(<Preloader store={store} />, ... );
 类似资料:
  • 我们正在开发一个iOS应用程序,它使用谷歌来验证firebase。根据https://www . Firebase . com/docs/IOs/guide/user-auth . html # section-log in Firebase说,auth令牌每24小时过期一次。我们想知道以下场景是否是我们需要考虑的: 用户通过Google和Firebase进行身份验证 我们的应用程序将获得一个24

  • 我试图理解为什么JWT认证是无状态的。在有状态认证中,会有一个会话id。这里有一张JWT的代币,上面有签名。所以身份验证服务器发布JWT令牌,但是我可以说后续请求中JWT令牌的验证是由endpoint服务器(应用服务器)而不是身份验证服务器来完成的吗?我相信这是可能的,因为JWT是用截止日期(还有一些其他信息)签名的,并且认证服务器的公共证书对所有endpoint服务器都是可用的。 因此,认证服务

  • 我正在laravel中创建一个多身份验证系统,其中有两种类型的用户:管理员(由我创建)和用户(使用本地laravel身份验证系统)。 如果我以用户身份登录,当我尝试访问登录页面时,当我已经登录,它会将我重定向回仪表板,但如果我以管理员身份登录,当我再次访问管理员登录页面时,它会让我再次登录,尽管已经作为管理员登录。 以下是我的重定向身份验证类代码: 有人能解释一下发生了什么事吗?

  • 我正在使用Spring Boot的最新版本,并且正在尝试设置StatelessAuthenticaion。到目前为止,我一直在读的教程非常模糊,我不确定我做错了什么。我使用的教程是... http://technicalrex.com/2015/02/20/Stateless-Authentication-with-spring-security-and-jwt/ code>TokenAuthen

  • 我正在构建一个API,并试图在多个上下文中解决身份验证问题。 API需要为我们创建和部署的客户端应用程序提供服务,并使用密码处理经过身份验证的请求。在每个请求中都发送密码并不是一个好主意,因此首先点击登录endpoint并获得会话ID更有意义。问题中的webapp是用AngularJS编写的,应该在localStorage中跟踪自己的会话,以减轻会话劫持并消除对cookie的依赖以跟踪会话。 we

  • 身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工