Handlebars和JWT令牌到本地存储

时间:2018-06-05 23:12:16

标签: express handlebars.js local-storage jwt 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 });
              }
            );

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

1 个答案:

答案 0 :(得分:1)

此操作中断的原因是,您试图将把手模板中的变量token设置为等于文字标记。等同于做类似的事情:

var token = gmndshhrjvjhsw4bnds221a

这不起作用。您需要通过将其用双引号或单引号引起来将其转换为字符串。

这是您要执行的操作的正确代码:

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