是否可以设置
Devise进行身份验证而无需密码?
这是一个Intranet应用程序.为了连接它,你必须首先在VPN上,加上应用程序只允许查看订单的状态&历史,不提交任何信息.我想类似于Fedex或UPS跟踪网站,但允许用户查看整个帐户,增加了客户端从我们这里获得的VPN盒的安全性.
现在我仍然需要密码,但这是对项目的不可协商的要求.客户已经习惯了这种方案,并且不太精通计算机以快速适应变化 – 这意味着他们无法记住密码.
解决方法
不太优雅的解决方案(不需要修改Devise):使用对所有用户都相同的默认密码
使用before_validation回调将user.password和user.password_confirmation设置为默认值(例如密码).
使用rails generate devise:views生成Devise视图
正如我所说,不优雅,但它应该做的伎俩,而不需要挖掘Devise内部.
更优雅的解决方案
在GitHub上开发Devise项目并根据您的需求调整https://github.com/plataformatec/devise/blob/master/lib/devise/strategies/database_authenticatable.rb
然后,您可以在Gemfile中指定fork.