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

Может быть достаточно хранить Id сессии? Как долго живут куки

сессии на клиенте?

20 ответов

29 просмотров

А чего Вы пытаетесь добиться? Зачем Вам ид хранить?

Mikhail-Izmailov Автор вопроса
Oleg Safonov
А чего Вы пытаетесь добиться? Зачем Вам ид хранить...

Сейчас у меня реализована JWT аутентификация. Проблема в том, что если один и тот же пользователь залогинится с одного браузера, а после с другого, то при логине на втором браузере изменится access и refresh токены, а следовательно на первом браузере по истечению времени жизни access токена пользователю нужно будет заново проходить логин, вызывая тем самым ту же ситуацию, но теперь для второго браузера. Посоветовали ассоциировать токены с сессиией. Т.е есть некая таблица в бд 1 User to Many Sessions, где для каждой сессии теперь пара своих токенов. Вот поэтапно разбираюсь с сессиями, и что-то не могу понять, как мне сохранить сессию так, чтобы если пользователь вошёл например с телефона, то пока RT для телефона не истечёт, он мог без всяких проблем зайти с этого телефона.

Mikhail-Izmailov Автор вопроса
Oleg Safonov
А где jwt токен на клиенте храните?

Это REST API пока что, клиента нет. Чисто постманом запросы кидаю)

Mikhail Izmailov
Это REST API пока что, клиента нет. Чисто постмано...

А клиенты вообще будут с двух браузеров ходить? Вы до с# на чем писали, какой опыт? Почему спрашиваю В общем я тут почитал сообщения выше Вы ещё с синтаксисом не до конца разобрались, а уже пытаетесь работать с сессией, бд и куками) Вы уверены, что это нужно на этом этапе?)

Mikhail Izmailov
Сейчас у меня реализована JWT аутентификация. Проб...

Если у Вас браузер, кстати, и сессия есть, то может без jwt обычную аутентификацию через куки юзать? Тогда и проблемы не будет

Mikhail-Izmailov Автор вопроса
Oleg Safonov
А клиенты вообще будут с двух браузеров ходить? Вы...

Так дело в том, что я могу написать сам 2 клиента. Один например браузер. А второй мобильное приложение. И вот эта проблема очень сильно проявит себя. Про синтаксис там, это просто не обращал внимания о том, как работает инициализатор объектов. Как говорится пользовался, но не вникал)

Mikhail Izmailov
Так дело в том, что я могу написать сам 2 клиента....

Объясните мне, с чего это получение токена клиентом отменяет другие токены

Mikhail Izmailov
Так дело в том, что я могу написать сам 2 клиента....

Ну в мобильном приложении сессии не будет, например И как тогда быть, если к сессии привязаться?

Слава
Объясните мне, с чего это получение токена клиенто...

Классически при логине создаётся рефреш токен на клиента и пишется куда нибудь в бд, и старый перестанет быть валидным

Слава
Если это jwt, откуда вообще взялась бд

А как по Вашему на сервере инфа хранится по токенам? Можно в памяти, если хотите суть та же

Mikhail-Izmailov Автор вопроса
Oleg Safonov
@m_slnk Этот вопрос ещё в силе)

Вот тут мне недостаточно знаний. По идее мне совсем не важно, есть ли поддержка сессий на самом клиенте. Запросы для получения данных к моему приложению моё приложение будет рассматривать как сессию по идее) А на клиенте кукис выставить с id этой сессии. Как тогда вообще делают приложения, где сервер - REST API, а клиенты и мобильное приложение под андроид, и под IOS и в сколько угодно браузерах можешь логиниться с разных IP и всё хорошо?

Mikhail Izmailov
Вот тут мне недостаточно знаний. По идее мне совсе...

Насколько я понимаю, что так примерно в делают, только вместо ид сессии используется некий deviceId В браузере он может быть идентификатором сессии

Mikhail-Izmailov Автор вопроса
Oleg Safonov
Насколько я понимаю, что так примерно в делают, то...

Так всё-таки, допустим ограничим кейс двумя браузерами. Я пользователь, зашёл с хрома в своё приложение, полазил, закрыл. Прошли сутки. Я зашёл с хрома, Id сессии у меня поменялся? У меня стоит кука в хроме ещё? Или Id сессии у меня остался такой же?

Mikhail Izmailov
Вот тут мне недостаточно знаний. По идее мне совсе...

В основном jwt, но если нужно на вебе защитить сессию, используют куки с httponly

Mikhail-Izmailov Автор вопроса
Oleg Safonov
Насколько я понимаю, что так примерно в делают, то...

сам проверил, получается, что когда в options.IdleTimeout я устанавливаю время, то по истечению этого срока на сервере для одного и того же клиента генерится новая сессия. Так что мне скорей всего надо как-то сделать так, чтобы сессия хранилась образно очень много и Idшник сессии хранился у меня в бд.

Mikhail Izmailov
сам проверил, получается, что когда в options.Idle...

Или тогда уже не к сессии привязаться

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

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

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
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта