这是管理用户的身份验证状态用户RN-router-flux的一种好方法吗?

时间:2019-10-27 16:34:58

标签: react-native redux react-redux react-native-router-flux

我想知道这是否是在我的应用程序中处理用户身份验证状态的适当方法。我正在使用redux持久敏感信息来存储身份验证令牌和有关用户的其他信息,以便当他们关闭应用程序并再次返回时,他们不必重新登录。这是关于这个的怪癖,我实际上并没有在登录后将用户导航到主页,也没有在注销后返回到登录名。取而代之的是,我使用一个loginIn的redux状态变量来确定路由器组件的呈现方式。如果为false,则将用户定向到登录屏幕,如果为true,则将用户定向到主页。现在,我之所以没有在登录后实际将用户导航到主页,而是在注销后又将其导航回登录的原因,是因为我忙于重叠的场景。发生的情况是路由器组件将重新呈现,因为身份验证状态从未登录更改为已登录,反之亦然,因此自动将用户定向到主页或重新登录。我想知道这样做是否可行,到目前为止,我还没有发现任何问题,而且看起来很可靠,但是如果有人有任何无法解决的经验,请告诉我。

这是我来自路由器组件的一些代码,因此您可以了解我在说什么。


import React, {Component} from 'react';
import {connect} from 'react-redux';
import {Scene, Router} from 'react-native-router-flux';

class RouterComponent extends Component {
  constructor(props) {
    super(props);
  }

  renderRouter() {
    const {loggedIn} = this.props;
    if (loggedIn) {
      return (
        HOMEPAGE ROUTER
      );
    } else {
      return (
         LOGIN/REGISTRATION ROUTER
    }
  }
  render() {
    return (
      <Router>{this.renderRouter()}</Router>
    );
  }
}

const mapStateToProps = state => {
  return {
    loggedIn: state.auth.loggedIn,
  };
};

export default connect(mapStateToProps)(RouterComponent);

0 个答案:

没有答案