将用户凭据存储在本地存储中| React,Redux

时间:2017-08-03 18:48:34

标签: javascript reactjs redux local-storage jwt

当用户登录时,他/她获得一个令牌,如果我console.log该令牌jwt_decode 没有将用户重定向到根路径,我可以看到用户来自我的console.log的邮件,名称等,但如果我将用户重定向到根路径,则console.log会在用户重定向后消失。

export function login(data) {
  return dispatch => {
    dispatch({ type: 'LOGIN_IS_LOADING' })
    axios
      .post(`${settings.hostname}/tokens`, data)
      .then(res => {
        const token = res.data
        localStorage.setItem('token', token)
        dispatch({ type: 'LOGIN_SUCCESS', payload: token })
        setAuthorizationToken(token)
        var decoded = jwt_decode(token)
        console.log('DECODED', decoded) // Getting an output when the line below is commented out
        // window.location.href = '/'
      })
      .catch(err => {
        dispatch({ type: 'LOGIN_ERROR', payload: err })
        console.log('Error:', err)
      })
  }
}

所以我想知道为什么会这样,以及我如何解决它。

感谢阅读!

1 个答案:

答案 0 :(得分:3)

更改window.location就像进行浏览器刷新一样,它会以刷新页面的方式擦除控制台输出。你可以通过检查"保存日志"来解决这个问题。在你的chrome devtools选项中