rails 3 使用设备进行身份验证

Posted

技术标签:

【中文标题】rails 3 使用设备进行身份验证【英文标题】:rails 3 using devise for authentication 【发布时间】:2011-06-01 17:58:25 【问题描述】:

我在我的 Rails 3 应用程序中使用 Devise 进行身份验证。

我的要求是使用用户名而不是电子邮件登录。

所以我修改了 config/initializers/devise.rb 文件如下

config.authentication_keys = [:username]

修改registraion页面,在注册时使用用户名、电子邮件、密码。 还修改了登录、注册视图以包含用户名。

我的问题:

当我点击Forgot password 时,它会显示输入email 的字段。在我输入“电子邮件”并单击“向我发送重置密码说明”按钮后。

它会引发错误Username can't be blank

我在哪里进行更改以解决此问题?

【问题讨论】:

【参考方案1】:

我假设 authentication_keys 将 :username 设置为必填字段。

尝试编辑 app/views/devise/passwords/new.html.erb 并替换:

<%= f.label :email %>
<br />
<%= f.text_field :email %>

与:

<%= f.label :username %>
<br />
<%= f.text_field :username %>

【讨论】:

对,设计包含其功能的默认视图,但如果您更改主登录字段,则必须覆盖所有要使用的视图。

以上是关于rails 3 使用设备进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 Devise 从 Rails 上的 json api 进行身份验证

Rails:使用敲门对 JWT 令牌进行身份验证

带有rails 3应用程序的ios json身份验证

我应该为在 CouchDB 上运行的 Rails 3 使用哪个身份验证 gem/插件?

使用 RESTful 身份验证插件进行 Ruby on Rails 功能测试

markdown [RAILS]使用设计进行LDAP身份验证