如何使用Signup
创建Devise
,而不是用户在注册时同时输入email
和password
,他需要输入的只是一封电子邮件然后通过他的电子邮件获取生成的Password
?
我正在尝试尽可能简单地进行注册,并且我发现由于设计已经能够发送激活电子邮件,为什么不再捎带并发送生成的密码并在登录时确认?
感谢您的帮助:)
答案 0 :(得分:1)
您可以在控制器中使用Devise的友好令牌:
password = Devise.friendly_token.first(8)
User.create(email: 'my@email.com', password: password, password_confirmation: password)
friendly_token 是一个字符串,包含 AZ , az , 0-9 ,“ - “和” _ “。
源代码here:
def self.friendly_token
SecureRandom.urlsafe_base64(15).tr('lIO0', 'sxyz')
end
和here了解更多信息:
def self.urlsafe_base64(n=nil, padding=false)
s = [random_bytes(n)].pack("m*")
s.delete!("\n")
s.tr!("+/", "-_")
s.delete!("=") if !padding
s
end