Аутентификация JWT при загрузке страницы - PullRequest
1 голос
/ 11 марта 2019

Я использую аутентификацию JWT на своем узле с паспортом и не уверен, что понимаю концепции.

Скажите, что я - аутентифицированный пользователь с моим токеном, сохраненным в локальном хранилище.Скажем, я перехожу на страницу / user, где будут отображаться данные о моем пользователе.Обычно я бы проверял, вошел ли пользователь в систему, и если нет, он будет перенаправлен на страницу входа.Но в этом случае, поскольку я не могу отправить токен аутентификации из запроса страницы, мне нужно загрузить страницу пользователя / пользователя, затем страница выполняет запрос данных пользователя, и если данные не найдены, я перенаправляю их настраницу входа через javascript.

Прав ли я в том, как бы я справился с этим?Это похоже на плохой пользовательский опыт, когда приходится ждать и перенаправлять дважды.Это можно обойти?JWT - это не то, что я ищу для своей реализации?

1 Ответ

1 голос
/ 11 марта 2019

Если вы хотите отобразить страницу на стороне сервера , вы должны установить JWT в качестве файла cookie вместо использования локального хранилища. Вы сможете поймать, проверить и использовать его, когда пользователь запросит страницу.

Но я должен сказать, что современные веб-приложения используют рендеринг на стороне клиента . Таким образом, нет необходимости хранить JWT как файл cookie. При запросе страницы вы получите только статические ресурсы и получите данные, запросив API, который может ответить 401 (недействительный или просроченный или отсутствующий токен).

Кажется, вы раньше использовали рендеринг на стороне сервера. Теперь вы хотите использовать JWT и где-то читали, что обычной практикой является хранение его в LocalStorage (это правда). Теперь вы имеете дело с архитектурой рендеринга приложений на стороне сервера, одновременно пытаясь смешать концепции рендеринга приложений на стороне клиента. Вы не делаете огромных ошибок, но вам следует рассмотреть возможность полной рендеринга на стороне сервера приложений или клиента (я предлагаю). Для второго варианта, Google "Создание одностраничного приложения"

...