170 похожих чатов

Ребят можете подсказать, есть задание "написать сервис аутентификации" - 4

REST маршрута, 1) Выдает пару access/refresh token, 2) выполняет refresh токенов, 3) удаляет конкретный refresh token из базы, 4) удаляет все refresh tokenы из базы конкретного пользователя. Как это выглядит приложение на Heroku? Может есть примеры как вообще это представить, почитал пару статей, не очень близко к моей теме, (если можно без токсизма), я начинающий в этом ЯП)

23 ответов

43 просмотра

Есть либа, которая все это реализует, возможно не одна, я работал с этим https://github.com/openshift/osin

Rail-Batyrshin Автор вопроса

Какой смысл хранить токены в базе?

🎅 СНГ
Какой смысл хранить токены в базе?

для возможности разлогиниться в случае атаки злоумышленника

Алексей Долгов
для возможности разлогиниться в случае атаки злоум...

Достаточно укоротить срок жизни токена 5 минутами?

Алексей Долгов
так access token и не должен жить долго

в теории. а так много где видел полувечные access токены на день или два. не очень секьюрно

Алексей Долгов
в теории. а так много где видел полувечные access ...

Юзерские токены могут быть jwt и должны быть короткими. И держать для отмены их в бд не очень нужно. Токены для общения микросервисов по внутренней сети могут вечно жить.

Elmanov Anton
Юзерские токены могут быть jwt и должны быть корот...

так тут два токена - access token и refresh token. access не хранится и имеет котороткий срок жизни. refresh хранится только у юзера и у сервиса который access выдает

Rail-Batyrshin Автор вопроса
🎅 СНГ
Какой смысл хранить токены в базе?

В ТЗ так описано, хранить только рефреш токен

Алексей Долгов
так тут два токена - access token и refresh token....

В той либе, что я скинул изначально, все токены хранятся, в моем случае это был редис https://github.com/openshift/osin Возможно, это какая-то особенность oauth, что там без хранения никак

Rail-Batyrshin Автор вопроса
Алексей Долгов
для возможности разлогиниться в случае атаки злоум...

я вообще не вкурил как это работает - сижу плачу

Rail Batyrshin
я вообще не вкурил как это работает - сижу плачу

это просто: 1. вводим пароль и юзернэйм. сервис выдает нам 2 токена - access и refresh. это роут login 2. кидаем access token и refresh token. из access если он jwt мы можем вынуть имя юзера или id и по нему в базе найти refresh и если все ок выдать новый access. это роут refresh

Rail-Batyrshin Автор вопроса
Алексей Долгов
это просто: 1. вводим пароль и юзернэйм. сервис вы...

а в параметре запроса необходимо еще указать GUID, это тоже генерируется каким то модулем?

Rail Batyrshin
а в параметре запроса необходимо еще указать GUID,...

id запроса пусть фронты генерят. не бэковское это дело

Rail-Batyrshin Автор вопроса
🎅 СНГ
Создатель тз чудаковатый слегка.

это от компании MEDODS, хотел как нуб постажироваться на NodeJS, а задание дали на Go, да и сложноватое для меня. Хотя я Go пару дней изучаю)

Rail Batyrshin
это от компании MEDODS, хотел как нуб постажироват...

А го тут не при чём, jwt.io посмотрите сколько там яп поддерживается.

🎅 СНГ
И где тут про oAuth?

У тебя несколько сервисов. ты идешь в сервис авторизации, он тебе выдает токен с правом доступа в сервис библиотеки, с полученным токеном ты идешь в библиотеку. Библиотека тебе верит. 1.идентификация 2. аутентификация. 3. Запрос прав(авторизация). 4. Получение токена. 5. С токеном ты получаешь доступ к ресурсам

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта