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

Я хочу сохранить токен 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 {

1 Ответ

0 голосов
/ 03 июня 2018

Поскольку localStorage.setItem("token", token) не существует в nodejs, поэтому приложение будет аварийно завершать работу в этой строке, и res.redirect("/"); никогда не будет выполнено, поэтому ответ никогда не отправляется обратно, и ваш браузер зависает во время ожидания ответа.

Чтобы исправить это, отправьте токен обратно клиенту, используя res.json({ token: token }); и запустите localStorage.setItem("token", token); в браузере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...