将JWT令牌保存到本地存储

时间:2018-06-03 00:13:35

标签: node.js express authentication jwt

我想将JWT令牌保存到本地存储中以验证路由。我的代码在下面,但是当这条路线被点击时,浏览器就会加载,然后说这个页面不起作用。删除localStorage.setItem()使其工作。我想知道为什么会这样。感谢。

} else {
        bcrypt.compare(password, user.password).then(Matched => {
          if (Matched) {
            //Create the payload for JWT to code
            const payload = { id: user.id, name: user.name, email: user.email };

            jwt.sign(
              payload,
              keys.JWT_KEY,
              { expiresIn: 3600 },
              (err, token) => {
                **localStorage.setItem("token", token);
                res.redirect("/");**
              }
            );
          } else {

1 个答案:

答案 0 :(得分:1)

因为nodejs中不存在localStorage.setItem("token", token),所以应用程序将在此行崩溃并且res.redirect("/");永远不会被执行,因此响应永远不会被发回,并且您的浏览器在等待响应时挂起

要修复此问题,请使用res.json({ token: token });将令牌发送回客户端,然后在浏览器中运行localStorage.setItem("token", token);