2015-05-28 3 views
1

Моя реализация для запоминания пользователю постоянно выглядит следующим образом (я не использую любой камень для аутентификации):Rails: как постоянно помнить пользователя, если он входит в систему из нескольких браузеров?

  1. Пользователь входит в систему из Firefox, предоставляет учетные данные и выбирает опцию Remember_Me.
  2. Пользователь аутентифицирован и создан для создания и размещения в журнале cookie cookie. В таблице пользователя сохраняется значение remember_digest, соответствующее значению remember_token. Пользователь уходит из Firefox.
  3. Пользователь делает шаг1, за исключением того, что он делает это из Chrome.
  4. Step2 выполняется. К сожалению, существующий mem_digest в db теперь перезаписывается новым значением.
  5. Пользователь снова запускает Firefox. Но Rails не может соответствовать значку remember_token, отправленному Firefox с помощью remember_digest.

    Что мне делать, чтобы обойти это? Нужно ли мне поддерживать несколько столбцов дайджеста? Если да, то сколько? Или, даже стоит ли это делать?

+0

Спасите запомнить жетона в виде массива в БД. Я думаю, что это решит вашу проблему. –

+0

Я бы также предложил реализовать отношения в вашей модели, которые пользователь 'has_many: remember_digests'. Вы также можете сохранить браузер для этой модели, чтобы у пользователя был общий обзор, из которого он работает в – 23tux

+0

. У вас есть контроллер сеансов в вашем приложении? – Elvn

ответ

0

Вы можете попробовать использовать Ahoy gem для вашей цели