如何利用“用户名或电子邮件”在Devise中进行登录?

5
我找到了一种方法来自定义Devise,以便使用用户名登录而不是电子邮件地址。
但实际上我想要使用用户名和电子邮件地址的组合登录。
Enter username or Email:   <text-box>
Enter your password    :   <text-box>  

那么如何实现这个目标呢?

实际上,我们需要修改 Devise Gem 的配置来支持此功能。
目前我知道的是需要修改 "/config/initializers/devise.rb" 文件,如下:

config.authentication_keys = [ :username ] (edited from email to username.)  

我可以实现使用用户名而非电子邮件地址进行登录的功能。
但我能做一些类似以下的事情吗:

config.authentication_keys = [ :username | :email] in the "config/initializers/devise.rb" file.  

我们希望在运行时根据用户提供的输入,将用户名或电子邮件作为认证密钥。
提前感谢。

3个回答

14

这个可行。还有X个相同的问题和答案。我已经在devise 2.1、Rails 3.2、mongoid 3上实现了这个功能。 - oma

3
如果存在@和.,这将是电子邮件的特征,那么如何根据用户名或电子邮件进行过滤呢?

我们在我们的应用程序中这样做。当然,这不是最优雅的解决方案,但它再直截了当不过了。 - Doug R

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接