首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Devise 401 on Login

Devise 401 on Login
EN

Stack Overflow用户
提问于 2013-05-07 08:17:29
回答 1查看 3.3K关注 0票数 1

我使用Devise对我的站点进行身份验证。我将我的用户模型设置如下:

代码语言:javascript
复制
class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :lockable, :timeoutable and :omniauthable

  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable,
         :token_authenticatable, :confirmable 

  attr_accessible :email, :name, :password, :password_confirmation, :remember_me, :college_id, :role

具有以下路由:

代码语言:javascript
复制
  devise_for :users
  as :user do
    get 'sign_in'             => 'devise/sessions#new',       :as => :login
    post 'sign_in'            => 'devise/sessions#create',    :as => :user_session
    delete 'sign_out'         => 'devise/sessions#destroy',   :as => :logout
    get 'signup'              => 'devise/registrations#new',  :as => :signup
    get 'forgot_password'     => 'devise/passwords#new',      :as => :forgot_password
    get 'resend_confirmation' => 'devise/confirmations#new',  :as => :resend_confirmation
  end

并且我收到以下错误:

代码语言:javascript
复制
Started POST "/sign_in" for 127.0.0.1 at 2013-05-06 19:57:34 -0400
Processing by Devise::SessionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"iy0BI3A6zY5TTIJ2eYkOpgwFIFubO2O8wII8GAmjDmE=", "email"=>"user@cmu.edu", "password"=>"[FILTERED]", "x"=>"-630", "y"=>"-434"}
Completed 401 Unauthorized in 1ms
Processing by Devise::SessionsController#new as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"iy0BI3A6zY5TTIJ2eYkOpgwFIFubO2O8wII8GAmjDmE=", "email"=>"user@cmu.edu", "password"=>"[FILTERED]", "x"=>"-630", "y"=>"-434"}

这在UI上显示为“无效的电子邮件或密码”。但是,我确信输入的密码是正确的,并且用户存在于数据库中(通过控制台验证)。Devise似乎没有对数据库进行任何查询。这是正常的吗?

有什么想法吗?感谢所有的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-05-07 19:03:12

在config/initializers/devise.rb中尝试

代码语言:javascript
复制
config.authentication_keys = [ :email ]

在user.rb中,您需要添加attr_accessor for :password,因为出于安全原因,它不会保存到数据库中

代码语言:javascript
复制
attr_accessor :password
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16409281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档