使用 Rails 5.1.2 和 Designing 4.3.0 登录失败 已完成 401 未授权(用户验证)



我正在创建一个基本的Devise/Rails授权设置,并且无法使用已知/已验证的电子邮件/密码值登录用户。 据我所知,这里没有发生任何异常。 登录参数显示传递到服务器的正确数据:

在 2017-07-08 14:34:45 -0400 开始为 ::1 发布 "/users/sign_in" Devise::SessionsController#create as HTML Parameters的处理: {"utf8"=>"✓", "authenticity_token"=>"Fa7u5V...lq81XEw==", "用户"=>{"电子邮件"=>"teb@gmail.com", "密码"=>"[已过滤]", "remember_me"=>"0"}, "commit"=>"登录"}

服务器输出指示用户的存在(基于具有已知电子邮件值的 SELECT 语句(:

用户负载(0.7 毫秒( 选择"用户"。 从"用户"中 "用户"。电子邮件" = $1 限制 $2 [["电子邮件", "teb@gmail.com"], ["限制", 11]] @user: #]>

但是,当 Devise 在此检查语句之后立即运行相同的查询时,它会返回"已完成 401 未经授权...">

用户负载(0.6ms( 选择"用户"。 从"用户"中 "用户"。电子邮件" = $1 "用户"订单。id" ASC 限制 $2 [["电子邮件", "teb@gmail.com"], ["限制", 1]] 在 14 毫秒内完成 401 未授权 (活动记录:1.9 毫秒(

以下是 routes.rb 和 user.rb 模型文件:

======= routes.rb =======
Rails.application.routes.draw do
get "/" => "users#home"
devise_for :users
resources :users do
resources :posts
end
end
======= user.rb =======
class User < ApplicationRecord
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable
has_many :posts
has_many :comments
end

是什么可能导致这种缺乏授权? 任何帮助将不胜感激!

使用语句查找控制器和应用程序控制器,例如cuurent_userbefore_action

class UsersController < ApplicationController
before_filter :login_required, :only => [:method1,:method2]
...
end

可能是您尝试调用的方法被列为需要身份验证,但您尚未登录。

您还可以发布包含其中方法的控制器摘录吗?

另一个可能的问题是您的路由可能定义不正确:

相关内容

最新更新