сделать авторизацию с помощью jwt token , насколько получилось с гуглом пополам.
Есть ли крутые программисты, которые могли бы одни глазом посмотреть код и указать на грубые ошибки? Был бы весьма признателен,
https://github.com/anaxita/webserver- тут простой только апи с регистрацией и авторизацией
я не понял, зачем вам jwt, если вы все равно сверяете его с бд
Отличный вопрос. 1. Я изначально полагал, что токен независим от бд т.к внутри себя содержит срок действия его по сути не нужно нигде хранить. 2. Я предположил, что неплохо было бы еще сверять данные внутри токена (claims в котором userid) - поэтому добавил проверку в БД на это поле. 2.1 Верно ли я полагаю, что если claims как-то поменяют, то токен уже не пройдет валидацию и моя проверка бесполезна?
линтер надо
https://github.com/anaxita/webserver/blob/7ad30247596e884e929f8694c70482a1b8ea69aa/internal/webserver/server/handlers.go#L12 - дизреспект так ключи хранить. вынести в енвы
Сверять - нет. Мы либо верим в jwt, либо он бесполезен
Понял вас. Подскажите, а каким образом исправить момент, что человек работает внутри системы и токен резко кончился?
в вашей реализации никак. ставить на двое суток expireAt
1. Есть ли пример реализации который подошёл бы под моё описание? 2. Или в какую сторону читать? 3. Выше писали про рефреш-токен - туда?)
да нужно 2 токена - refresh и access. Если нужно конечно очень. Ибо такой кейс когда нагруженный бэк, много сервисов, и веб-приложение и мобильное и десктоп и много устройств у каждого юзера и все ломятся на бэк
Ну сервис будет совсем не нагруженный, но не суть. Просто хотелось бы для себя четко понимать какие кейсы есть и в каких ситуациях их лучше использовать Например сейчас - мне нужен сервис который по запросу будет выключать/включить виртуальные машины в дата-центре. Клиентам веб-доступ и из моб. приложения нужно дать. Если в вебе - то можно использовать куки и сессии как я понял (писал пару дней назад про это) А в моб. приложении гугл предложил jwt - но вот встал вопрос с тем, что если в процессе работы кончится токен... клиенту будет очень неприятно что его на ровном месте выкинули. Вы предложили access-refresh (похоже на то что мне нужно), а после написали, что кейс не очень... так как же сделать, чтобы и безопасно относительно было и не выкидывало посреди работы?) Допустим для моей задачи я сделаю через refresh А после захочу чат корпоративный написать.... как там быть?
Спасибо, я планирую хранить данные от БД и прочие секретные вещи в Json файле. Можно ли так делать или чем удобнее/безопаснее env?
А где будет json ?
В корне проекта...? в папке /configs ...?
Могу вам посоветовать https://www.keycloak.org/ Очень удобное решение и не нужно выдумывать, как вам быть, жвт или куки, вечный токен или аксес/решреш 😊
Интересная штука) Однако прежде чем использовать, хотелось бы понимать "зачем я это использую" и "как оно работает внутри"
Там документация есть, так что кто вам мешает разобраться-то?)) Или вот в этих токенах сессиях, берите и разбирайтесь))) Или вы думаете там пара приложений и кто-то вам тут изложит суть?))) Это довольно таки объемный материал, о том когда и какие токены нужно использовать, какие плюсы и минусы, что во что эволюционировало... Изучайте, дерзайте!)
Я в самом начале написал, что может быть посоветуете более живой материал (статьи книги видео), чем сухая документация (она тоже не плоха, но всё же)
ну давайте я погуглю за вас: https://habr.com/ru/company/mailru/blog/343288/ https://tproger.ru/translations/user-session-security/ https://gist.github.com/zmts/802dc9c3510d79fd40f9dc38a12bccfc И это не полный охват материала)
Спасибо! Сейчас вопрос без шуток - каким поисковиком вы пользуетесь? duckduckgo таких не выдавал....ну правда)
Да обычным гуглом)) Просто запросы строю немного иначе) Конкретно эти ссылки произошли от запроса “использование токенов сессии”
Дополню ещё одной ссылкой. Тут не только про аутентификацию, но и про авторизацию: https://blog.gelin.ru/2019/11/auth.html
Обсуждают сегодня