如何自动保持用户登录React和Loopback应用程序?

时间:2018-02-18 00:31:27

标签: reactjs redux react-redux loopback

我创建了一个应用程序,要求用户使用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 ;我知道如何恢复我的用户,而无需重新进行整个日志记录。

最好的方法是什么?当我已经设置了令牌时,如何找出登录的用户?

0 个答案:

没有答案