|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
Делаю REST API для приложения. Стал вопрос безопасности. Мой выбор пал на JWT (JSON Web Token). Хорошо. Нашел и понял как это делается и работает - сделал. Сделал только Access token. Но потом понял что "а что делать когда срок действия access token-а истекает? просить юзера залогинится заново? ну как-то такое себе занятие". Залез в гугл и увидел тему с Refresh token-ом. Начал изучать. Но вот полного понимания того зачем он нужен нет. Подскажете зачем он нужен? Может есть другие, более лучшие, способы авторизации пользователя? P.S. читал на хабре и на разных сайтах и везде разное пишут. Основная проблема это в отзыве выданных токенов. Хранить ли в бд или в памяти и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 00:34 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
A Refresh Token is a special kind of token that can be used to obtain a renewed access token —that allows accessing a protected resource— at any time. You can request new access tokens until the refresh token is blacklisted. Refresh tokens must be stored securely by an application because they essentially allow a user to remain authenticated forever. Если речь про AOuth2 Вот тоже самое только в спеках https://tools.ietf.org/html/rfc6749#section-1.5 Если коротко по русски то рефреш токен очень опасная вещь если ее получил враг то он может не зная пароля и логина получать доступ к Вашим ресурсам. Часто эту фичу запрещают в АОЗ 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 02:51 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
Tsyklop, токены хранят только где-то на клиенте, именно потому у большинства из них есть срок жизни. jwt токен обычно шифруют каким либо из алгоритмов(в зависимости от срока жизни можно подобрать алгоритм, который за данной время не взломать или вовсе выбрать какие-нибудь ассиметричные ключи) и на сервер сайде их валидируют на лету. ( https://github.com/auth0/java-jwt) Токены на клиент сайде не рекомендуют хранить в куках, лучше использовать local storage. Refresh token нужен для того, чтобы по нему сервер вернул новый Access token после того, как у старого истек срок жизни. У Refresh token`а тоже есть срок жизни(например - 1 день) Вместо refresh token вы можете использовать свою имплентацию oauth2 ^^ С другой стороны, зачем вам вообще токены? У true way rest stateless сервисы ? Настройте нормально сессию при авторизации, пусть живет на бэкенде и делов то. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 09:07 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
Озверинсессию+1 Это у MS повальное увлечение токенами и аллергия на сессию. Но в java то корпоративное ПО. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 09:50 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
Озверин, То бишь. Когда закончилось время жизни access token-а я делаю запрос с refresh token-ом. Если он валидный то сервак мне возвращает новые access и refresh. При этом на фронте не выбрасывает юзера на форму логина. так? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 10:08 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
TsyklopОзверин, То бишь. Когда закончилось время жизни access token-а я делаю запрос с refresh token-ом. Если он валидный то сервак мне возвращает новые access и refresh. При этом на фронте не выбрасывает юзера на форму логина. так? да, все правильно. Релогин будет только когда истечен refresh token(по идее!). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 10:20 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
Может есть еще какие-то решения для авторизации клиента? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 17:05 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
TsyklopМожет есть еще какие-то решения для авторизации клиента? одноразовые пароли или сертификаты ) Можно железные или программные ключи. Ну и надо отличать авторизацию от аутиентификации, вы же за аутиентификацию спрашиваете? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 17:09 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
ОзверинНу и надо отличать авторизацию от аутиентификации, вы же за аутиентификацию спрашиваете? да, именно. По началу я делал через сессию, но там было приложение монолит. теперь же все отдельно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 17:31 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
TsyklopОзверинНу и надо отличать авторизацию от аутиентификации, вы же за аутиентификацию спрашиваете? да, именно. По началу я делал через сессию, но там было приложение монолит. теперь же все отдельнобыла защита на сервере, теперь токенами занимается клиенты и хакеры). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 17:39 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
Tsyklopприложение монолит. теперь же все отдельнопоигрался? Теперь вертай все взад) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 17:42 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
А я говорил, что проблемы будут с авторизацией... https://github.com/sqshq/PiggyMetrics вот тут очень примитивно описано и реализовано(несколько микросервисов и токены и все дела). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 19:20 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
ОзверинА я говорил, что проблемы будут с авторизацией... https://github.com/sqshq/PiggyMetrics вот тут очень примитивно описано и реализовано(несколько микросервисов и токены и все дела). Тут юзается OAuth2 стартер бута. Я делал без него. Мало чем это мне поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 20:04 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
TsyklopОзверинА я говорил, что проблемы будут с авторизацией... https://github.com/sqshq/PiggyMetrics вот тут очень примитивно описано и реализовано(несколько микросервисов и токены и все дела). Тут юзается OAuth2 стартер бута. Я делал без него. Мало чем это мне поможет. без спринг бута или со своей имплентацией токенов:?) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 20:23 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
TsyklopДелаю REST API для приложения. Стал вопрос безопасности. Мой выбор пал на JWT (JSON Web Token). Обычно такое делают когда в сети много Rest сервисов. Без этого постановка выглядит слегка... хм... гипертрофированной. От этого у тебя и непонимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 20:27 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
refresh token всеж не имеет срока давности и его можно поставить только в ченый список. The main concept of refresh token , is that it is long lasting and never expires. The access token has expiry time and it expires, once it expires we can go for the refresh token, that will be used again and again until the user revokes from his account. https://stackoverflow.com/questions/8953983/do-google-refresh-tokens-expire Я для тех кто с первого раза не понял ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 20:43 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
TsyklopМожет есть еще какие-то решения для авторизации клиента? Академическое решение для тех кто не может осилить протокол SAML2 это осилить OAth2 Authorization Code Grant воркфло https://tools.ietf.org/html/rfc6749#section-1.3.1 Все зависит какой авторизационный сервер вам предстоит использовать и какой протокол этот сервер поддерживает ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 20:54 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
Озверинбез спринг бута или со своей имплентацией токенов:?) Со спринг бутом. Но своя реализация фильтров, создания токенов через jwt либу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2019, 21:12 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
TsyklopОзверинбез спринг бута или со своей имплентацией токенов:?) Со спринг бутом. Но своя реализация фильтров, создания токенов через jwt либу. а зачем? Все есть из коробки жы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2019, 00:55 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
Озверина зачем? Все есть из коробки жы. Хм. тоже верно ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2019, 01:21 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
Tsyklop, Из коробки есть все штук 10 методов аутентификации. Поэтому тема давно изжевана и расписана. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2019, 07:16 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
А какой смысл давать человеку 10 методов если он не видит мотивации к применению? Дайте ему мотивацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2019, 08:54 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
maytonА какой смысл давать человеку 10 методов если он не видит мотивации к применению? Дайте ему мотивацию. зайди, объясни, еще и мотивируй...это не тот форум - тут нет коучей ;))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2019, 08:56 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
maytonДайте ему мотивацию.мотивирует топик стартер интересным вопросом))) LOL. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2019, 09:00 |
|
JWT. Access token и Refresh token. Зачем? Почему?
|
|||
---|---|---|---|
#18+
ОзверинmaytonА какой смысл давать человеку 10 методов если он не видит мотивации к применению? Дайте ему мотивацию. зайди, объясни, еще и мотивируй...это не тот форум - тут нет коучей ;))) Эйнштейн говорил что если мы не можем объяснить суть какой то вещи ребёнку. - значит мы сами это не понимаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2019, 09:02 |
|
|
start [/forum/topic.php?fid=59&msg=39757640&tid=2121541]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 159ms |
0 / 0 |