2017-07-08 61 views
0

我正在創建一個基本的Devise/Rails授權設置,並且無法用已知/驗證的電子郵件/密碼值登錄用戶。據我所知,這裏的普通情況並不是這樣。簽到PARAMS顯示正確的數據傳遞給服務器:使用Rails 5.1.2和Devise 4.3.0登錄失敗已完成401未經授權(用戶驗證)

開始POST 「/用戶/ sign_in」 爲:: 1,在2017年7月8日14時34分45秒-0400 處理由設計:: SessionsController#創建爲HTML參數: {「utf8」=>「✓」,「authenticity_token」=>「Fa7u5V ... lq81XEw ==」, 「user」=> {「email」=>「[email protected]」 「密碼」=> 「[FILTERED]」, 「remember_me」=> 「0」}, 「提交」=> 「登錄」}

服務器輸出指示用戶的存在(基於在具有已知電子郵件值的SELECT語句上):

用戶負載(0.7ms)SELECT「users」。* FROM「users」WHERE 「users」。「email」= $ 1 LIMIT $ 2 [[「email」,「[email protected]」], 「限制」, 11] @user:#]>

但是當設計該檢查的語句,則返回 「已完成401未授權......」

用戶之後立即運行相同的查詢加載(0.6ms)SELECT「users」。* FROM「users」WHERE 「users」。「email」= $ 1 ORDER BY「users」。「id」ASC LIMIT $ 2 [[「email」, 「[email protected]」],[ 「限制」,1]]已完成401未經授權在14ms的 (ActiveRecord的:1.9ms)

這裏是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 

什麼可能導致這種授權的缺乏?任何幫助將不勝感激!

回答

0

查找您的控制器和應用控制器的語句如cuurent_userbefore_action

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

可能是方法你嘗試調用被列爲需要驗證,但您還沒有登錄。

你還可以發佈你的控制器的摘錄與其中的方法嗎?

另一個可能的問題是您的路線可能被錯誤地定義:

相關問題