【问题标题】:Devise authenticating with username instead of email设计使用用户名而不是电子邮件进行身份验证
【发布时间】:2012-06-02 23:21:00
【问题描述】:

我是 Devise 的新手,通过使用电子邮件地址作为身份验证密钥,它可以正常工作。但是,我有一个需要用户名的用例,但我似乎无法让它工作。

我在 users 表中添加了一个字符串列“username”,将登录表单中的字段从 :email 更改为 :username,并将 devise.rb 中的身份验证密钥更改为 :username我去登录我遇到了这个提示:“请输入电子邮件地址”。

我做错了什么?

**new.html.erb**

  <div><%= f.label :username %><br />
  <%= f.email_field :username %></div>

**User.rb**
class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, :authentication_keys => [:username]

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :username
  # attr_accessible :title, :body
end

**devise.rb**
 config.authentication_keys = [ :username ]

【问题讨论】:

  • 您是否重新启动了您的 Rails 应用程序?
  • 是的,重新启动的 Rails 服务器也提取了您提到的内容。没有快乐。

标签: ruby-on-rails devise


【解决方案1】:

在您的 config/initializers/devise.rb 中取消注释 config.authentication_keys = [ :email] 并将其更改为 config.authentication_keys = [ :username ]

更新:
您的表单不正确。
f.email_field 更改为f.text_field

【讨论】:

  • 我就是这样设置的。 config.authentication_keys = [:username]
  • 天哪,真是愚蠢。感谢您向我指出。我想我累了就不应该玩东西了。
  • 当您使用scoped_views时,您可以使用devise authentication_keys =&gt; [:email]将身份验证密钥移动到模型级别
【解决方案2】:
  • 首先,确保运行迁移。

bundle exec rake db:migrate

  • 为 Devise 生成视图,否则 Devise 将使用默认值。

rails generate devise:views

  • 根据需要更改设计/视图(将电子邮件字段替换为用户名字段)

  • 重启网络服务器

希望对你有帮助!

【讨论】:

    【解决方案3】:

    添加到 rb512 答案

    当你将config.authentication_keys设置为[:username]时,设置也很方便

    • config.case_insensitive_keys = [:username]

    • config.strip_whitespace_keys = [:username]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 2010-10-16
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多