繁体   English   中英

使用Devise进行身份验证时的可选密码

[英]Optional password during authentication with Devise

如果我有Rails应用程序,并且想通过Devise添加身份验证,那么我该如何允许数据库中具有空密码的用户登录而不使用它?

我有兴趣听取有关生命周期的答案以及完成该过程必须编写的文件。

步骤1:允许保存记录。
步骤2:登录记录

要保存记录,您需要自己进行验证。 我在这里介绍如何进行自定义验证: http : //jessewolgamott.com/blog/2011/12/08/the-one-where-devise-validations-are-customized/ ....在您的情况下,您将想要删除密码验证。

要登录记录,您需要有一个自定义登录路径。 您可以覆盖devise会话控制器,但这可以解决问题:

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策略:

https://github.com/hassox/warden/wiki/策略

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM