Как использовать полезную нагрузку JWT для хранения пользовательских данных сеанса? - PullRequest
0 голосов
/ 05 апреля 2019

Я создаю веб-приложение со стороной API BACK-END, написанной на Symfony, и стороной FRONT-END, написанной с Angular 7. Моя проблема состоит в том, чтобы извлечь пользовательские данные из серверной части и сохранить их в сеансе впереди. Конечная сторона. Я использую JWT для аутентификации между передней и задней частью.

Я хочу использовать полезную нагрузку JWT для хранения пользовательских данных из серверной части. Я прочитал, что хранить токен JWT в localStorage небезопасно, и я должен хранить его в файлах cookie с параметрами httpOnly и secure . Но если я использую эту систему, мое угловое интерфейсное приложение не сможет читать данные полезной нагрузки JWT (невозможно прочитать файлы cookie httpOnly в Javascript).

Мой вопрос: как я могу использовать JWT для аутентификации с опциями httpOnly / secure И использовать данные полезной нагрузки для данных сеанса пользователя? Нужно ли использовать JWT только для аутентификации и сделать еще один вызов к внутреннему API для получения данных о пользовательских сессиях?

Спасибо!

1 Ответ

0 голосов
/ 05 апреля 2019

Чтобы получить пользовательские данные из токена для вашего внешнего приложения, используйте это в JavaScript

function parseJwt (token) {
        var base64Url = token.split('.')[1];
        var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
        return JSON.parse(window.atob(base64));
    };
...