How to make passwords optional using Devise?

2019-04-13 02:46发布

问题:

How can I make the password optional into the registration and login when authenticating a user (if no password then it will just use the e-mail) using Devise. Although if they register with a password (or update it later) it should then be require for login. How can I accomplish this using Devise?

Note: I'm using Rails 3.0.1 and Devise 1.1.rc0

回答1:

Found in the devise email group by Nat Budin:

class User < ActiveRecord::Base 
  devise :database_authenticatable, :validatable 
  protected 
  def password_required? 
    false 
  end 
end 


回答2:

This is old but I dealt recently with the same issue. My solution was to override the RegistrationsController to send an automatically generated password. It is not ideal as the password is sent in plain text but I really wanted to have a light-touch registration workflow. I've written a short tutorial how to do it.