Рули и токен JWT на локальное хранилище - PullRequest
0 голосов
/ 06 июня 2018

Я использую экспресс-руль и токены 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 голосов
/ 13 сентября 2018

Причина, по которой это происходит, состоит в том, что вы пытаетесь установить переменную token в шаблоне руля, равную буквальному токену.Было бы эквивалентно делать что-то вроде:

var token = gmndshhrjvjhsw4bnds221a

Что не работает.Вам нужно превратить его в строку, заключив его в двойные или одинарные кавычки.

Это правильный код для того, что вы пытаетесь сделать:

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