Я делаю приложение Rails.
Я хотел бы установить флажок "запомнить меня", чтобы пользователи могли пропустить пароль ввода в следующий раз с помощью Devise: rememberable.but, но я не могу понять, как реализовать.
если у вас есть идея с этим, пожалуйста, покажите мне пример кода для этого.
Как использовать Devise: запоминаем?
Ответ 1
Добавьте параметр :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 %>
Я думаю, что все, что вам нужно...
Ответ 2
У вас могут возникнуть проблемы с возможностью запоминания, если вы пишете свои собственные стратегии аутентификации. Объект ресурса (например, User
), возвращаемый вашей аутентификацией! метод должен отвечать за установку resource.remember_me
из данных формы. Обычно это обрабатывается родительским методом Authenticable validate. Если вы не используете этот метод, вам придется установить его самостоятельно.