【发布时间】:2019-10-08 18:33:21
【问题描述】:
我有一个组件,每次更改屏幕时应用程序都会通过该组件。在这个组件中,我将isLogged: true 保存在状态中,这是一个告诉我是否已登录的变量。
当isLogged === true时,我重定向到主屏幕,当isLogged === false时,我重定向到登录。如果我登录,我进入我的应用程序并刷新页面(f5 或 ctrl+r),失去 isLogged 状态并将我重定向到 signIn,因为 isLogged 现在不正确。
我想知道是否有任何方法可以保存 isLogged 变量,以便刷新页面(正在登录)不会将我重定向回登录。我试图将状态保存在本地存储中,但我认为它不安全。这是我的代码:
export class Layout extends Component {
constructor(props) {
super(props);
//definimos las variables necesarias
this.state = { isLogged: false, usuarioLogado: any };
//realizamos el bind de las funciones
this.DoLogin = this.DoLogin.bind(this);
}
//funcion donde establecemos los valores de las variables
DoLogin = (logged, usuario) =>
this.setState({
isLogged: logged,
usuarioLogado: usuario
});
render() {
if (this.state.isLogged) {
return <div>
<NavMenu headerTitle={this.props.headerTitle} textos={this.props.textos} valor={this.props.valor} changeLanguage={this.props.changeLanguage} usuario={this.state.usuarioLogado} labelData={this.props.labelData}/>
{this.props.children}
</div>
}
else return <SignIn callbackFromParent={this.DoLogin} labelData={this.props.labelData}/>;
}
}
【问题讨论】:
-
您使用的是哪种身份验证?
-
我使用基本身份验证,使用用户登录并通过。 @zhuber
-
最好将其保存在 cookie 中 - npmjs.com/package/react-cookie
-
设置为 localStorage 或 sessionStorage
标签: javascript reactjs