我创建了一个应用程序,要求用户使用Loopback和React登录以访问大量内容。
现在的文件夹结构是所有React的东西都在它自己的文件夹client/
中,而所有服务器端都在项目的根文件夹中。
每当我让用户登录时,这就是我的代码:
export default function authenticate (email, password) {
return axios.post('http://localhost:3001/api/users/login', { email, password })
.then(res => {
const token = res.data.id
localStorage.setItem('jwtToken', token)
return res
})
}
值得注意的是,我正在使用Redux来检查用户是否在整个应用程序中登录。我在我的商店中设置了一个名为loggedInUser
的状态,它使用我需要的所有数据跟踪用户对象。这是我点击登录表单按钮时运行的代码:
handleSignInButton (evt) {
evt.preventDefault()
const { email, password } = this.state
authenticate(email, password) // this calls the function from above
.then(user => {
this.props.logInUser(user.data) // sets my redux state as the user which just logged in
})
}
当我通过我的登录组件实际登录时,这一切都很好,但问题是如果我,例如硬刷新,或者离开页面然后回来,我的状态成为默认状态,我不会&#39 ;我知道如何恢复我的用户,而无需重新进行整个日志记录。
最好的方法是什么?当我已经设置了令牌时,如何找出登录的用户?