REST маршрута, 1) Выдает пару access/refresh token, 2) выполняет refresh токенов, 3) удаляет конкретный refresh token из базы, 4) удаляет все refresh tokenы из базы конкретного пользователя. Как это выглядит приложение на Heroku? Может есть примеры как вообще это представить, почитал пару статей, не очень близко к моей теме, (если можно без токсизма), я начинающий в этом ЯП)
Есть либа, которая все это реализует, возможно не одна, я работал с этим https://github.com/openshift/osin
спасибо большое, сейчас ознакомлюсь)
Какой смысл хранить токены в базе?
для возможности разлогиниться в случае атаки злоумышленника
Достаточно укоротить срок жизни токена 5 минутами?
так access token и не должен жить долго
в теории. а так много где видел полувечные access токены на день или два. не очень секьюрно
Юзерские токены могут быть jwt и должны быть короткими. И держать для отмены их в бд не очень нужно. Токены для общения микросервисов по внутренней сети могут вечно жить.
так тут два токена - access token и refresh token. access не хранится и имеет котороткий срок жизни. refresh хранится только у юзера и у сервиса который access выдает
В ТЗ так описано, хранить только рефреш токен
В той либе, что я скинул изначально, все токены хранятся, в моем случае это был редис https://github.com/openshift/osin Возможно, это какая-то особенность oauth, что там без хранения никак
я вообще не вкурил как это работает - сижу плачу
это просто: 1. вводим пароль и юзернэйм. сервис выдает нам 2 токена - access и refresh. это роут login 2. кидаем access token и refresh token. из access если он jwt мы можем вынуть имя юзера или id и по нему в базе найти refresh и если все ок выдать новый access. это роут refresh
а в параметре запроса необходимо еще указать GUID, это тоже генерируется каким то модулем?
какой guid?) для самого запроса?
id запроса пусть фронты генерят. не бэковское это дело
Создатель тз чудаковатый слегка.
это от компании MEDODS, хотел как нуб постажироваться на NodeJS, а задание дали на Go, да и сложноватое для меня. Хотя я Go пару дней изучаю)
И где тут про oAuth?
А го тут не при чём, jwt.io посмотрите сколько там яп поддерживается.
У тебя несколько сервисов. ты идешь в сервис авторизации, он тебе выдает токен с правом доступа в сервис библиотеки, с полученным токеном ты идешь в библиотеку. Библиотека тебе верит. 1.идентификация 2. аутентификация. 3. Запрос прав(авторизация). 4. Получение токена. 5. С токеном ты получаешь доступ к ресурсам
Вооот, это да, про oauth, но это не jwt же.
Обсуждают сегодня