Рули и токен JWT на локальное хранилище
Я использую экспресс-руль и токены 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 ответ
Причина, по которой это нарушается, заключается в том, что вы пытаетесь установить переменную token
в шаблоне руля, равном буквальному токену. Было бы эквивалентно делать что-то вроде:
var token = gmndshhrjvjhsw4bnds221a
Который не работает. Вам нужно превратить его в строку, заключив его в двойные или одинарные кавычки.
Это правильный код для того, что вы пытаетесь сделать:
{{#if auth.token}}
<script type="text/javascript" async>
const token = '{{auth.token}}';
localStorage.setItem("token", token)
</script>
{{/if}}