Моя реализация для запоминания пользователю постоянно выглядит следующим образом (я не использую любой камень для аутентификации):Rails: как постоянно помнить пользователя, если он входит в систему из нескольких браузеров?
- Пользователь входит в систему из Firefox, предоставляет учетные данные и выбирает опцию Remember_Me.
- Пользователь аутентифицирован и создан для создания и размещения в журнале cookie cookie. В таблице пользователя сохраняется значение remember_digest, соответствующее значению remember_token. Пользователь уходит из Firefox.
- Пользователь делает шаг1, за исключением того, что он делает это из Chrome.
- Step2 выполняется. К сожалению, существующий mem_digest в db теперь перезаписывается новым значением.
Пользователь снова запускает Firefox. Но Rails не может соответствовать значку remember_token, отправленному Firefox с помощью remember_digest.
Что мне делать, чтобы обойти это? Нужно ли мне поддерживать несколько столбцов дайджеста? Если да, то сколько? Или, даже стоит ли это делать?
Спасите запомнить жетона в виде массива в БД. Я думаю, что это решит вашу проблему. –
Я бы также предложил реализовать отношения в вашей модели, которые пользователь 'has_many: remember_digests'. Вы также можете сохранить браузер для этой модели, чтобы у пользователя был общий обзор, из которого он работает в – 23tux
. У вас есть контроллер сеансов в вашем приложении? – Elvn