0

我正在使用 express-handlebars 和 jwt 令牌作为登录路径。我试图在我的 api 上点击登录路由时将令牌存储在本地存储中。问题是当我在前端设置令牌时,它会由于其格式而产生错误。我的代码在下面,如果有人有一个很好的修复或想法。谢谢!前端:(在车把模板中)

{{#if auth.token}}
<script type="text/javascript" async>
const token = {{auth.token}};
localStorage.setItem("token", token)
</script>
{{/if}}

后端,保存令牌并使用渲染发送:

jwt.sign(
              payload,
              keys.JWT_KEY,
              { expiresIn: 3600 },
              (err, token) => {
                auth.token = token;
                auth.status = true;
                res.render("home", { auth: auth });
              }
            );

错误是语法错误:无效或意外令牌。

4

1 回答 1

1

这是因为您试图将token车把模板中的变量设置为等于文字标记的原因。这相当于做类似的事情:

var token = gmndshhrjvjhsw4bnds221a

这是行不通的。您需要通过将其包裹在双引号或单引号中来将其转换为字符串。

这是您尝试执行的正确代码:

{{#if auth.token}}
  <script type="text/javascript" async>
    const token = '{{auth.token}}';
    localStorage.setItem("token", token)
  </script>
{{/if}}
于 2018-09-13T06:50:25.150 回答