JWT, который может быть закодирован в Laravel и декодирован в JavaScript

Я пытаюсь сгенерировать токен JWT, который я сделаю в своем проекте Laravel, как это решение, которое я нашел: https://github.com/luciferous/jwt/blob/master/JWT.php

Итак, у меня есть 2 вопроса, которые я пытаюсь обернуть вокруг:

В моем проекте Next.js React я установил бы JWT в cookie, чтобы запомнить его. Это правильно? И затем может передавать его при каждом запросе к серверу для проверки пользователя.

Как я мог декодировать его тогда в Next.js? Так что я мог получить некоторую основную информацию из этого как имя пользователя.

2

Решение

Для декодирования 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 пользователем.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]