设计:仅使用电子邮件地址创建用户

时间:2014-12-26 03:27:07

标签: ruby-on-rails ruby authentication devise

如何使用Signup创建Devise,而不是用户在注册时同时输入emailpassword,他需要输入的只是一封电子邮件然后通过他的电子邮件获取生成的Password

我正在尝试尽可能简单地进行注册,并且我发现由于设计已经能够发送激活电子邮件,为什么不再捎带并发送生成的密码并在登录时确认?

感谢您的帮助:)

1 个答案:

答案 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