jwt вторизация
Всем привет! Помогите пожалуйста понять jwt авторизацию.
И так, я пытаюсь написать серверное API на express + mongo. Сейчас пытаюсь сделать jwt авторизацию. Для этого использую либку jsonwebtoken. С ее помощью, создаю токен и отправляю на клиент. Потом с клиента отправляю запрос к защищенным данным с созданным токеном в теле и с помощью функции verify ee декодирую(при помощи секретного ключа). Все было ок, до того момента как я узнал о ф-ции decode, которая почему то может декодировать его и без ключа. Более того зайдя на https://jwt.io/ я так же смог легко декодировать токен в их конструкторе. Отсюда вопрос: нафига нужен токен, который может декодировать любой, кто его знает? И как его нужно использовать правильно? Буду очень благодарен за ответ:) |
5lav0n,
Ну декодировали и декодировали. Понятно что это можно делать. Там же обычный base64. |
там не надо хранить секретных данных. С другой стороны, если он есть, то не только его декодировать можно, но и получить все права данного юзера. Как с кукис - есть кукис - есть вход.
Единственное, что я не понимаю, почему есть такая тема, как рефреш токена. Про рефреш кукисов никто не говорил, все считалось безопасным. А jwt же по сути то же самое - хранится локально в браузере, передается по сети при каждом запросе. Но вот зачем то их надо рефрешить, хоть убей, желательно каждые несколько минут. Кто-нибудь может объяснить, зачем это надо (по сравнению с кукис), и если правда надо, то как реализовывать? |
Часовой пояс GMT +3, время: 04:51. |