我正在制作Rails应用程序
我想实现一个“记住我”复选框,以便用户在下次使用Devise:rememberable时跳过输入密码。但我无法弄清楚如何实现。
如果您对此有任何想法,请向我展示一些示例代码。
答案 0 :(得分:16)
在用户模型中添加: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 %>
我认为这就是你所需要的......
答案 1 :(得分:6)
如果您编写自己的身份验证策略,则可能会遇到可记住的问题。您的身份验证返回的资源对象(例如User
)!方法需要负责从表单数据中设置resource.remember_me
。这通常由父Authenticable的validate方法处理。如果您不使用此方法,则必须自己设置。