1

Я работаю над javascript-приложением, используя REST API. аутентификация производится с JWT токеном хранится в печеньеREST API и проверка подлинности JWT: отправка данных по токену?

Прямо сейчас, этот сценарий реализуется:

  • пользователь Войти с учетными данными. Клиентские вызовы POST /token для аутентификации

  • сервер отвечает HTTP-файлом, содержащим токен.

  • После аутентификации, клиент делает еще один запрос, чтобы получить все пользовательские данные (GET /me)

Я хотел бы сделать этот процесс как можно быстрее и сократить количество серверных запросов в максимально возможной степени. Я думал о объединении вызовов /token и /me и получения токена и пользовательских данных по тому же запросу.

Это можно сделать разными способами:

  • в формуле маркера, но клиент не сможет использовать его, как это в HTTP-только печенье.

  • в другом, не HTTP-только, печенье, но это будет отправлено бесцельно с каждым последующим запросом, так что я не люблю это решение

  • в теле ответа, когда сервер отправляет куки после аутентификации, но У меня такое чувство, что оно противоречит принципам REST при отправке пользовательских данных из конечной точки аутентификации.

Есть ли способ сделать этот процесс более простым при соблюдении стандартных процессов и принципов REST?

ответ

0

Я использую Cookies как хранилище, но не в режиме HTTPonly. В этом случае самым простым является кодирование необходимой информации внутри токена.

Вы вынуждены использовать только HTTP-файлы cookie? Это вариант для вас, чтобы изменить его (на самом деле, для этого вы должны овладеть сервером авторизации)?

Другое дело: использование GET для передачи учетных данных небезопасно, так как вы, вероятно, передаете свои учетные данные в URL-адресе, который может быть получен из журналов сервера. Предпочитают POST (и HTTPS, конечно).

Немного указателей о JWT и их stategies хранения:

+0

Я использую HTTP-только куки по соображениям безопасности, чтобы избежать уязвимости от XSS атак на пример. С защитой от CSRF я все хорошо. И я не хочу нести слишком много информации в своих куках.Они будут отправлены по каждому запросу, так что чем легче, тем лучше. На самом деле, я уже использую POST для передачи учетных данных, просто ошибка при написании этого вопроса;) – Tdy

Смежные вопросы