如果我有一个 Rails 应用程序并且我想使用 Devise 添加身份验证,我将如何允许数据库中密码为空的用户在没有密码的情况下登录?
我有兴趣听到关于生命周期的答案以及我必须编写哪些文件才能完成它。
如果我有一个 Rails 应用程序并且我想使用 Devise 添加身份验证,我将如何允许数据库中密码为空的用户在没有密码的情况下登录?
我有兴趣听到关于生命周期的答案以及我必须编写哪些文件才能完成它。
第 1 步:允许保存记录。
第二步:登录记录
要允许保存记录,您需要自己进行验证。我在这里描述如何进行自定义验证:http: //jessewolgamott.com/blog/2011/12/08/the-one-where-devise-validations-are-customized/ ....在你的情况下,你会想要删除密码验证。
要登录记录,您需要有一个自定义登录路径。您可以覆盖设计会话控制器,但这可以解决问题:
class SessionsController < ApplicationController
def create
user = User.find_by_email!(params[:session][:email])
sign_in user
redirect_to root_path
end
end
事实证明,Devise 是建立在 Warden 之上的。这意味着我只需要创建自己的自定义 Warden 策略: