我想将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 {
答案 0 :(得分:1)
因为nodejs中不存在localStorage.setItem("token", token)
,所以应用程序将在此行崩溃并且res.redirect("/");
永远不会被执行,因此响应永远不会被发回,并且您的浏览器在等待响应时挂起
要修复此问题,请使用res.json({ token: token });
将令牌发送回客户端,然后在浏览器中运行localStorage.setItem("token", token);
。