设计仅电子邮件注册 - rails

Devise email only signup - rails

在我正在开发的 rails 应用程序中。我试图通过输入他们的电子邮件地址然后通过确认电子邮件确认他们的帐户来添加用户注册的能力。我不希望用户必须输入任何密码。 我该怎么做?

这个例子很有用,但是需要用户输入密码:https://github.com/plataformatec/devise/wiki/How-To:-Email-only-sign-up

我应该为所有用户自动使用一个密码吗?

不确定这是否对您有帮助,但基于身份验证过程的简单性,我建议根本不要使用 Devise。您可以在 SessionsController 中创建一个操作,它将 params[:email](或者您在应用程序中调用它)与 UsersTable 中列出的电子邮件进行比较。

Devise 是为 身份验证 而构建的,它可以是密码,也可以是通过社交网络快速检查这实际上是他们声称的人。电子邮件地址用作身份

如果您只想通过电子邮件识别 一个人,我建议您为此创建自己的系统。如果愿意,您甚至可以添加一些 Devise 功能。首先,创建一个带有电子邮件属性的 User 模型:

rails generate model User email:string

迁移数据库后,为其创建一个控制器:

rails generate controller users

然后创建一个 Session 模型并让每个 User 通过登录创建会话。网络上将有很多关于如何创建这样的系统的精彩教程。编写像 current_useruser_signed_in? 这样的辅助方法也应该很容易。

最后一点,如果您希望人们在使用电子邮件确认注册后登录,您将如何确保登录的人与确认电子邮件的人实际上是同一个人?任何恶意用户都可以简单地使用已经确认的帐户登录,除非您每次登录时都必须进行电子邮件确认...

因此,尽管您可以执行上述操作,但我强烈建议进行某种身份验证,无论是使用密码还是使用 OmniAuth to connect to social networks. There's a railscast for that here