от
Моих Rails приложение имеет знак в окне с "Запомнить меня" флажок. Пользователи, которые убедитесь, что коробка должна оставаться в системе даже после закрытия браузера. Я отслеживаю, могут ли пользователи вошли в систему, сохраняя их ID в сессии пользователя. Но сеансы проводятся в рельсы как сессионные куки, которые не являются постоянными. Я могу сделать их стойкими:
class ApplicationController

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

9 Ответы

0 голосов
от
Моих Rails приложение имеет знак в окне с "Запомнить меня" флажок. Пользователи, которые убедитесь, что коробка должна оставаться в системе даже после закрытия браузера. Я отслеживаю, могут ли пользователи вошли в систему, сохраняя их ID в сессии пользователя. Но сеансы проводятся в рельсы как сессионные куки, которые не являются постоянными. Я могу сделать их стойкими:
class ApplicationController
0 голосов
от
Я провел некоторое время думал об этом и пришел к некоторым выводам. Рельсы сеансовые cookie-файлы для взлома по умолчанию, поэтому вам не придется беспокоиться о cookie-файлов, изменен на клиента. Вот что я сделал: Сеансовый cookie устанавливается, чтобы быть долгосрочной (6 месяцев) Внутри сеанса магазине И истекает срок, который установлен для входа 24 часа ID пользователя Проверку подлинности = true так я могу позволить для анонимных пользователей sesssions (не опасно из-за защиты файлов cookie шпалоподбойки) Я добавляю before_filter в контроллер приложение, которое проверяет 'истекает' часть сессии. Когда пользователь проверяет поле "Запомнить меня", я просто сессия[:expireson] дата входа 2 недели. Никто не может украсть cookie и остаться в системе навсегда или маскироваться под другим пользователем, поскольку сеанс рейки печенье вандалоустойчива.
0 голосов
от
Вы должны почти наверняка не будет продления сессии cookie для того, чтобы быть долговечными. Хотя дело не конкретно с рельсов в данной статье идет до какой-то длины, чтобы объяснить 'помните, лучшие практики мне'. В резюме, хотя вы должны: Добавить дополнительный столбец к таблице пользователей, чтобы принять большой случайной величины Установить долго жил куки на клиенте, который сочетает в себе идентификатор пользователя и случайной величины При запуске нового сеанса, проверить существование идентификатора/значение cookie и проверки подлинности пользователя, если они совпадают. Автор также рекомендует недействительности случайной величины и сброс куки при каждом входе. Лично мне не нравится, что тогда вы не сможете войти на сайт с двух компьютеров. Я склонен убедиться, что моя функция смены пароля и сброс случайной величины, таким образом, блокируя сеансы на другие машины. В качестве последнего замечания, советы, которые он дает на оформление определенных функций (смена пароля/почты изменения и т. д.) недоступны для авто авторизованных сессиях стоит ниже, но редко видели в реальный мир.
0 голосов
от
Я хотел бы предложить, что вы либо посмотрите на вилку RESTful_Authentication в, котором есть реализация этого, или просто включите своей реализации, чтобы использовать спокойный Authentication_plugin. Есть хорошее объяснение о том, как использовать этот плагин в Railscasts: railscasts #67 restful_authentication Вот ссылка на сам плагин restful_authentication
0 голосов
от
Плагин restful_authentication имеет хорошую реализацию этого: http://agilewebdevelopment.com/plugins/restful_authentication
0 голосов
от
Обратите внимание, что вы не хотите сохранять свои сессии, просто их идентичности. Вы создадите свежий сессия для них, когда они вернутся на ваш сайт. Как правило, вы просто присвоить идентификатор пользователя, пишите, что их печенье, а затем использовать его, чтобы искать их, когда они вернутся. Не используйте свое имя пользователя или идентификатор пользователя для маркер как это может быть легко угадывается и позволяют пронырливые посетители угнать учетные записи других пользователей.
0 голосов
от
Это очень хорошо писать-до одного ребята опыт создания 30-дневного сеансах. Предупреждение: в блоге пост с 2006 года http://grahamglass.blogs.com/main/2006/05/rails_sessionsr.html
0 голосов
от
Это работает как шарм для меня: http://squarewheel.wordpress.com/2007/11/03/session-cookie-expiration-time-in-rails/ Теперь мои сеансы CookieStore истекает через две недели, в результате чего пользователь должен снова представить свои учетные данные для того, чтобы быть постоянно зарегистрированным в течение еще двух недель. Обычно, это так же просто, как: в том числе один файл в директории vendor/Плагины набор сессию сроком в контроллер приложения с помощью всего одной строки
0 голосов
от
Я бы пошел искать гениальное решение аутентификации для рельсов.
...