Я пытаюсь сгенерировать токен JWT, который я сделаю в своем проекте Laravel, как это решение, которое я нашел: https://github.com/luciferous/jwt/blob/master/JWT.php
Итак, у меня есть 2 вопроса, которые я пытаюсь обернуть вокруг:
В моем проекте Next.js React я установил бы JWT в cookie, чтобы запомнить его. Это правильно? И затем может передавать его при каждом запросе к серверу для проверки пользователя.
Как я мог декодировать его тогда в Next.js? Так что я мог получить некоторую основную информацию из этого как имя пользователя.
Для декодирования JWT в Javascript вы можете использовать библиотеку декодирования JWT Auth0 (https://github.com/auth0/jwt-decode) который упрощает декодирование (без проверки) закодированных токенов JWT.
Вы просто прочитали бы токен JWT из набора cookie и расшифровали его следующим образом:
var token = 'eyJ0eXAiO.../// jwt token';
var decoded = jwt_decode(token);
Вы также можете использовать простую функцию для декодирования, которая будет выглядеть следующим образом:
function parseJwt (token) {
var base64Url = token.split('.')[1];
var base64 = base64Url.replace('-', '+').replace('_', '/');
return JSON.parse(window.atob(base64));
};
Нет проблем с декодированием токенов JWT непосредственно в приложении React, просто убедитесь, что вы всегда проверяете закодированный токен на стороне сервера, чтобы он не мог быть модифицированным токеном JWT пользователем.
Других решений пока нет …