для повышения безопасности, может быть хорошей идеей, сохранить в базе данных пользователя маркер и проверить, каждый раз, если маркер посланный API соответствует с одной сохраненной в базе данных? Это действительно полезно?
Это полностью разрушает объект использования JWT. Преимущество JWT заключается в том, что вам не нужно отслеживать сеансы на стороне сервера - они чисто клиентские. Недостатком JWT является то, что вы не можете отменить токены из-за этого (цена, которую вы платите). Если вам нужна дополнительная безопасность, не используйте JWT и отслеживайте сеансы на стороне сервера, используя случайный токен (CSPRNG, 128 бит).
избежать сохранения информации о пользователе в сессии, это хорошая идея ставит электронную почту, если он админ, и т.д. в полезной нагрузке JWT в? , если я сохраню информацию о пользователе в полезной нагрузке JWT, и пользователь изменит его электронную почту или другую информацию, как я могу автоматически обновить токен пользователя , сохраненный в его браузере?
Ну, вы можете использовать идентификатор пользователя вместо электронной почты. Например, первичный ключ вашей таблицы пользователя. Затем, если они обновляют свою информацию, токен остается в силе. Вы должны установить короткие даты истечения срока действия, поэтому, если пользователь больше не является администратором, ему придется запросить новый токен (часто называемый токеном обновления), а новый токен не будет иметь требование администратора.
лучше сохранить токен в качестве файла cookie или хранилища в Интернете?
До вас. Если он хранится в файле cookie, он отправляется с каждым запросом. Если вы хотите получить значение с помощью JavaScript, используйте веб-хранилище. Если вы используете cookie, установите флаг Secure, чтобы он не протекал через простой HTTP и флаг HttpOnly, чтобы защитить его от любых уязвимостей XSS в вашем домене. Веб-хранилище не может быть защищено от XSS таким же образом (вам нужно сделать все возможное, чтобы весь ваш домен был защищен), однако он менее вероятно, будет утечка через простой HTTP.
Вы читали 'jwt.io'? Если да, то почему вы задаете этот вопрос? –
Одна вещь: «Я создаю аутентификацию JWT» Пожалуйста, скажите мне, что вы не катаетесь самостоятельно. Используйте [существующую библиотеку] (https://github.com/lcobucci/jwt), пожалуйста. –
@ScottArciszewski. Я использую Firebase JWT. Вчера я начал читать и создавать свою первую аутентификацию jwt – Webman