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

Скажите, как можно сделать чтобы не хранить refresh токен в

лакал сторадж?
вообщем, у меня на беке есть access и refresh токены. Access токен живет минуту и по нему дается вся инфа, запрос на рефреш токен требует поле для заполнения refresh, которое дается при авторизации вместе c access токеном. Соответственно я и беру два токена и кладу в локал сторадж, когда access токен истекает я делаю запрос на рефреш токен с нужным refresh токеном в параметрах и в ответ мне прилетают новые два токена access и refresh. Как то можно сделать так, чтобы не хранить нигде refresh токен??

25 ответов

65 просмотров
Erik-Arakelian Автор вопроса

А норм практика два токена access и refresh хранить в сторадж?

А как иначе?

Erik Arakelian
А норм практика два токена access и refresh хранит...

норм, но я старовер и больше доверяю кукам

Erik-Arakelian Автор вопроса
Evgeniy Vanzhula
А как иначе?

То есть норм? Я бекендер, вот сейчас фронт пишу и изучаю

Erik Arakelian
А норм практика два токена access и refresh хранит...

в любом случае над безопасностью нужно подумать

Erik Arakelian
То есть норм? Я бекендер, вот сейчас фронт пишу и ...

Оба нужны, оба для разных целей... Лишь бы не impliciteflow

Erik Arakelian
То есть норм? Я бекендер, вот сейчас фронт пишу и ...

разницы нет украдут у вас 2 токена или куки-сессию и там и там получат доступ к сайту есть механизмы защиты, не все действенные, но всё же тут вопрос в другом, зачем вам именно токенная-авторизация и почему нужна именно она, а не другая альтернатива

Erik-Arakelian Автор вопроса

Да вот я читал про SPA и везде про jwt написано. Современно, безопасно и все такое. Вот я и сделал jwt

Erik Arakelian
Да вот я читал про SPA и везде про jwt написано. С...

тут уже смотря какое SPA, для админки JWT хорошо подходит, для интернет магазина с API-сервером хватает и обычного bearer токена

Аксесс токен хранишь в сторе приложения, а рефреш ставишь в куку сразу с бэка, httpOnly, same site, и path только на путь эндпоинтов, где этот рефреш токен нужен, условно /api/auth А в ответе желательно вообще не отдавать рефреш токен, если у тебя нет какого-нибудь мобильного приложения

Erik-Arakelian Автор вопроса
Sky Roses
Аксесс токен хранишь в сторе приложения, а рефреш ...

У меня data и status - undefiend так как статус 400 равен (refresh: обязательное поле). Можешь сказать как refresh token из куки передать в этом пост запросе?? я думал это сделает withCredentials...

Erik Arakelian
У меня data и status - undefiend так как статус 40...

Обязательно *поле* Ты сам ответил на свой вопрос

Sky Roses
Обязательно *поле* Ты сам ответил на свой вопрос

У тебя оно не полем должно быть, а доставаться из куков

Erik Arakelian
У меня data и status - undefiend так как статус 40...

ищите сразу реализацию на промисах....и очередях, т.к. могут проскочить сразу несколько запросов - а токен протух))))) и надо будет подождать рефреша, а затем поменять заголовки авторизации в очереди

Erik Arakelian
У меня data и status - undefiend так как статус 40...

А вы уверены что куки не отправляются на сервер? Посмотрите в Нетворк этого запроса, а именно во вкладке Headers -> Request Headers

Erik-Arakelian Автор вопроса

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

Erik-Arakelian Автор вопроса
Ali
А теперь покажите код на сервере, как вы обрабатыв...

эм.. на беке я использую пакет simple jwt для django rest framework. Я кастомизировал пост запрос чтобы refresh в куку прятать.

Erik-Arakelian Автор вопроса

бывают задачи максимально индивидуальны)

Erik Arakelian
бывают задачи максимально индивидуальны)

В итоге, вам нужно дописать на беке, на клиенте у вас все ок, ваша кука отправляется

Erik-Arakelian Автор вопроса
Ali
В итоге, вам нужно дописать на беке, на клиенте у ...

спасибо, дописал middleware на беке. Все работает. Позволь еще вопрос, я того что я написал для рефреша на фронте достаточно? Или нужно как то сделать чтобы фоном запрашивался и обновлялся access токен. Вообщем чтобы не случилось такого что вдруг разлогиниться внезапно

Erik Arakelian
спасибо, дописал middleware на беке. Все работает....

💪 Да вроде сойдет) У тебя твой рефреш должен тебе возвращать новую пару аксеса и рефреша(рефреш не обязателен, если ты ток не хочешь к примеру на мобилках использовать, там с куками беда), этот новый акссес подставляешь в клиент.

Erik-Arakelian Автор вопроса
Ali
💪 Да вроде сойдет) У тебя твой рефреш должен тебе...

спасибо. Точно, рефреш из респонса еще забыл убрать. Отлично, целый день сижу с этим) ну раз ок, значит ок

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

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

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
This automated cryptocurrency trading system uses intelligent algorithms to buy low and sell high on leading crypto exchanges. Many users have already enjoyed significant prof...
Endu Wako
1
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
вот не понимаю, зачем вообще лезть в осдев, если даже базы не знаешь? хотя бы про загрузку, форматы файлов железо какое-никакое. Ну реально, даже зная работу железа, с условны...
Mixail Frolov
7
Карта сайта