Инфо:
У меня есть специальное поле у каждого юзера, которое генерируется при первой авторизации и при смене пароля. Оно нужно, чтобы сверять его со значением в куках и если совпадает, то всё ок, а если нет, то выбиваем аккаунт из авторизации.
Это, например, необходимо, когда сменили пароль и на всех других устройствах делаем выход. Иначе смысл в смене пароля отпадает.
Вопрос:
Могу ли я хранить в незашифрованномм виде в куках это значение? Потому что по факту ни на что не влияет кроме как на авторизацию. Ещё это значение используется как уникальный идентификатор в сокетах socket.io, и мы его выводим в консоли при успешном подключении сокета.
p.s. использую laravel, там готового решения не нашёл, token не использую их местный, который нужен для Remember Me.
1. Токен - это токен! Зашифрован он или не зашифрован - не важно.
2. Других вариантов для авто-логона, кроме как сохранённый токен на стороне клиента - я не знаю.
3. Не забудьте только проверять смену клиентского устройства с идентичным токеном (чтобы не взяли его и не передали на другой ПК): если клиентское устройство - это браузер, то должна помочь следующая связка: подсеть провайдера + fingerprint2. Меняется связка => запрашиваем авторизацию и выписываем новый токен, затем - добавляем этот токен к аккаунту на сервер (старые, разумеется, не трогаем).
И никак не скопирую, ведь он меняется при смене пароля.
Речь про "если украдут" или сам человек захочет поделиться доступом с кем-то ещё (шаринг учётки).
Если переменные (токены, данные устройства-клиента и т.д.) для "прозрачной" авторизации смогут перенести 1-в-1 на другое устройство, а в механизме авторизации - будет "дырка", то второй клиент успешно пройдёт "прозрачную" авторизацию под тем же юзером.
xmoonlight, что значит дырка? Если нет токена в куках, то просто выкидывает из авторизации. Чтобы он там появился нужно заново авторизироваться, а для этого нужен пароль и логин от учётки)
xmoonlight, Возможно я неверно выразился. Это не совсем токен, это просто уникальное поле в базе данных. Это не для API и всего такого, оно не используется для авторизации, а лишь выбрасывает авторизацию, если его вдруг нет в куках или не совпадает с тем что есть в базе.
а лишь выбрасывает авторизацию, если его вдруг нет в куках или не совпадает с тем что есть в базе.
это и есть токен. Вот если его скопируют на другую машину (т.е. установят те же куки в другом браузере), а токен - не привязан к клиенту (клиентскому устройству: браузеру, например), то аккаунт будет уже расшарен на два клиента и оба смогут заходить, и т.д.
xmoonlight, и моя проверка это лишь дополнительная проверка была, через мой токен невозможно авторизироваться, потому что при каждом запросе к серверу (а чтобы его сделать нужно быть авторизированным иначе сервер отклонит его) я дополнительно проверял совпадает ли мой собственный токен с полем из базы у юзера. А токен меняется при смене пароля.
Если объясните как вы сможете авторизироваться толкьо по моему токену который никак не участвует в авторизации, то буду очень благодарен.