Dav*_*vid 5 passwords rubygems ruby-on-rails devise omniauth
我正在使用OmniAuth和Devise来验证用户身份.我希望使用OmniAuth提供商注册的用户能够设置可选密码(API身份验证所需),但我遇到了问题.
如果用户通过OmniAuth创建帐户并尝试设置密码,则会收到以下错误:
BCrypt::Errors::InvalidHash in RegistrationsController#update
Run Code Online (Sandbox Code Playgroud)
我相信这是因为密码是空白的.这有什么好办法?我考虑过生成一个随机密码,但这种方法的问题是用户需要知道当前密码才能编辑设置.
编辑:我看过允许用户更改设置而不需要当前密码,这就是我想要做的事情,只有当用户最初没有密码时.
另一种方法是将以下内容添加到"用户"模型类中,以便在没有要验证的密码时绕过密码验证,其中provider是使用外部身份验证时设置的某个字段.
def valid_password?(password)
!provider.nil? || super(password)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1952 次 |
| 最近记录: |