Как использовать Devise: запоминающийся?
Я делаю приложение Rails.
Я хотел бы установить флажок "запомнить меня", чтобы пользователи пропускали ввод пароля в следующий раз, используя Devise: запомнить. Но я не могу понять, как это сделать.
если у вас есть идеи, пожалуйста, покажите мне пример кода для этого.
2 ответа
Добавить :rememberable
вариант в вашей модели пользователя
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable,
:validatable, :token_authenticatable, :lockable, :omniauthable
# ...
end
Создайте миграцию, чтобы добавить remember_created_at
столбец в таблице пользователей
class AddRememberCreatedAtToUsers < ActiveRecord::Migration
def change
add_column :users, :remember_created_at, :datetime
end
end
Если вы не используете представления Devise по умолчанию, добавьте флажок к вашему представлению:
<%= f.check_box :remember_me %> <%= f.label :remember_me %>
Я думаю, что это все, что вам нужно...
Вы можете столкнуться с проблемами с запоминанием, если вы пишете свои собственные стратегии аутентификации. Объект ресурса (например, User
) возвращено вашей аутентификацией! Метод должен нести ответственность за установку resource.remember_me
из данных формы. Обычно это обрабатывается методом validate родительского Authenticable. Если вы не используете этот метод, вам придется установить его самостоятельно.