2013-04-25 25 views
6

Tôi đang gặp khó khăn trong việc giải thích lý do tại sao ứng dụng của tôi trả lại 401 trái phép. Các hành động khác trong bộ điều khiển tổ chức của tôi chỉ hoạt động tốt khi chưa đăng nhập. Tuy nhiên, trang này và một trang khác đang quay trở lại 401. Nếu đăng nhập, các trang này hoạt động hoàn toàn tốt, nhưng chúng không yêu cầu đăng nhập. để làm trống chế độ xem và hành động, nhưng trang vẫn đang trả về 401. Khi gỡ lỗi thông qua trình phát, tôi chỉ nhận được chuyển hướng 302.đường ray phát sinh 401 trái phép đối với một trang cụ thể

Tôi đã thử nghiên cứu ở nơi khác và đã thử các giải pháp từ Warden authentication recalls 401 Unauthorized mà không thành công.

điều khiển

Started GET "/institutions/3" for 127.0.0.1 at 2013-04-25 14:38:15 -0400 
    Processing by InstitutionsController#show as HTML 
     Parameters: {"id"=>"3"} 
     ←[1m←[36mInstitution Load (0.0ms)←[0m ←[1mSELECT `institutions`.* FROM `institutions` WHERE `institutions`.`id` = 3 LIMIT 1←[0m 

Load data... 
Load assets... 

Sau đó, tôi gửi biểu mẫu, phương pháp được thiết lập như GET

Started GET "/visit/schedule/preview?utf8=%E2%9C%93&selected_ids=4693" for 127.0.0.1 at 2013 
-04-25 14:28:53 -0400 
Processing by InstitutionsController#previewselectedvisits as HTML 
    Parameters: {"utf8"=>"√", "selected_ids"=>"4693"} 
Completed 401 Unauthorized in 0ms 

Started GET "https://stackoverflow.com/users/sign_in" for 127.0.0.1 at 2013-04-25 14:28:53 -0400 
Processing by Devise::SessionsController#new as HTML 
    Rendered devise/sessions/new.html.erb within layouts/application (15.6ms) 
    Rendered auth/_login.html.erb (0.0ms) 
    Rendered auth/_loginmodal.html.erb (0.0ms) 
    Rendered shared/_navbarout.html.erb (0.0ms) 
    Rendered shared/_navbar.html.erb (0.0ms) 
    ←[1m←[36mInstitution Load (0.0ms)←[0m ←[1mSELECT name FROM `institutions` ←[0m 
    Rendered search/_searchbar.html.erb (0.0ms) 
    Rendered search/_searchresults.html.erb (0.0ms) 
    Rendered shared/_footer.html.erb (0.0ms) 
Completed 200 OK in 140ms (Views: 46.8ms | ActiveRecord: 15.6ms) 

Load assets... 

Tuyến đường có liên quan

devise_for :users 
match 'visit/schedule/preview' => 'institutions#previewselectedvisits', :as => :preview_visits, :via => :get 
match "institutions/:id" => "institutions#show", :as => :show_institution 

tuyến cào

new_user_session GET /users/sign_in(.:format)        devise/sessions#new 
       user_session POST /users/sign_in(.:format)        devise/sessions#create 
     destroy_user_session DELETE /users/sign_out(.:format)       devise/sessions#destroy 
      user_password POST /users/password(.:format)       devise/passwords#create 
     new_user_password GET /users/password/new(.:format)      devise/passwords#new 
     edit_user_password GET /users/password/edit(.:format)      devise/passwords#edit 
          PUT /users/password(.:format)       devise/passwords#update 
    cancel_user_registration GET /users/cancel(.:format)        devise_invitable/registrations#cancel 
     user_registration POST /users(.:format)          devise_invitable/registrations#create 
    new_user_registration GET /users/sign_up(.:format)        devise_invitable/registrations#new 
    edit_user_registration GET /users/edit(.:format)        devise_invitable/registrations#edit 
          PUT /users(.:format)          devise_invitable/registrations#update 
          DELETE /users(.:format)          devise_invitable/registrations#destroy 
     user_confirmation POST /users/confirmation(.:format)      devise/confirmations#create 
    new_user_confirmation GET /users/confirmation/new(.:format)     devise/confirmations#new 
          GET /users/confirmation(.:format)      devise/confirmations#show 
       user_unlock POST /users/unlock(.:format)        devise/unlocks#create 
      new_user_unlock GET /users/unlock/new(.:format)       devise/unlocks#new 
          GET /users/unlock(.:format)        devise/unlocks#show 
    accept_user_invitation GET /users/invitation/accept(.:format)     devise/invitations#edit 
    remove_user_invitation GET /users/invitation/remove(.:format)     devise/invitations#destroy 
      user_invitation POST /users/invitation(.:format)       devise/invitations#create 
     new_user_invitation GET /users/invitation/new(.:format)      devise/invitations#new 
          PUT /users/invitation(.:format)       devise/invitations#update 
      preview_visits GET /visit/schedule/preview(.:format)     institutions#previewselectedvisits 
      show_institution  /institutions/:id(.:format)       institutions#show 
      vote_institution  /institutions/:id/vote/:visittype_id(.:format)  institutions#vote 
            /institutions/:id/:offset(.:format)     institutions#show 
       institutions  /institutions(.:format)        institutions#index 
      schedule_visits  /schedule(.:format)         institutions#index 
       auth_failure  /auth/failure(.:format)        services#failure 
            /auth/:service/:callback(.:format)     services#create 
        services GET /services(.:format)         services#index 
          POST /services(.:format)         services#create 
        service DELETE /services/:id(.:format)        services#destroy 
       login_user  /users/login(.:format)        users#login 
      myvisits_user  /users/myvisits(.:format)       users#myvisits 
     email_myvisits_user  /users/myvisits/email(.:format)      users#emailmyvisits 
    remove_visit_from_user  /users/removevisit/:id/:user_id(.:format)   users#rmvisit 
      addvisits_user  /users/addvisits(.:format)       users#addvisits 
      changevisit_user  /users/visits/:user_id/:visit_id/:is_going(.:format) users#toggle_user_going_on_visit 
     add_family_to_user  /users/invite(.:format)        users#addfamilymember 
add_family_default_to_user  /users/profile/addfamilymemberdefault(.:format)  users#addfamilymember_default 
    remove_family_from_user  /users/profile/removefamilymember(.:format)   users#rmfamilymember 
     update_profile_user  /users/profile/update(.:format)      users#update 
update_profile_other_user  /users/profile/update/:id(.:format)     users#update 
     edit_profile_user  /users/profile/edit(.:format)      users#edit 
     show_profile_user  /users/profile(.:format)        users#show 
        users  /users(.:format)          users#show 
        families GET /families(.:format)         families#index 
          POST /families(.:format)         families#create 
       new_family GET /families/new(.:format)        families#new 
       edit_family GET /families/:id/edit(.:format)       families#edit 
        family GET /families/:id(.:format)        families#show 
          PUT /families/:id(.:format)        families#update 
          DELETE /families/:id(.:format)        families#destroy 
        visits  /visits(.:format)         visits#index 
        company  /company(.:format)         company#aboutus 
         edu  /edu(.:format)          edu#index 
         root  /             institutions#index 

Gemfile

source 'https://rubygems.org' 
gem 'rails', '3.2.12' 
gem 'mysql2' 
gem 'execjs' 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 
gem 'simple_form' 

gem 'devise' 
gem 'devise_invitable' 
gem 'omniauth' 
gem "omniauth-google-oauth2" 
gem 'omniauth-linkedin-oauth2' 
gem 'omniauth-facebook' 

#in-place editing 
gem 'best_in_place' 

#email template convert to inline 
gem 'roadie' 

#amazon web services and images 
gem 'paperclip' 
gem 'aws-sdk' 
+0

bạn có thể liệt kê những đá quý bạn có trong Gemfile của mình không? Uỷ quyền thường được thực hiện thông qua một đá quý riêng biệt, độc lập với Xác thực. – Tilo

+0

cảm ơn bạn @Tilo Gemfile đã được thêm – Michael

+0

có vẻ như Ủy quyền được thực hiện thủ công trong ứng dụng của bạn – Tilo

Trả lời

12

kiểm tra mã của InstitutionsController của bạn và ApplicationController - tìm kiếm báo cáo với current_user hoặc before_filter trong họ

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

có thể là phương pháp mà bạn đang cố gắng gọi được liệt kê là yêu cầu xác thực, nhưng bạn chưa đăng nhập.

Bạn cũng có thể đăng đoạn trích của InstitutionsController bằng phương pháp xem trước trong đó không?

Một vấn đề có thể là con đường của bạn có thể được xác định không đúng cách:

match 'visit/schedule/preview' => 'institutions#previewselectedvisits', :as => :preview_visits, :via => :get 

nào InstitutionsController thực sự có một phương pháp gọi là previewselectedvisits?

+0

cảm ơn bạn rất nhiều và bạn đánh tôi với cú đấm để bạn trả lời câu hỏi này ... bạn đã đưa tôi vào đúng hướng (trước khi tôi nhìn thấy điều này, đó là tại chỗ trên). Cảm ơn bạn rất nhiều. Tôi đã có mã before_filter: authenticate_user !,: except => [: index,: show] – Michael

+0

Nó sẽ không cho tôi giải thưởng tiền thưởng trong 23 giờ nữa, nhưng sẽ quay lại và đảm bảo tôi làm. Cảm ơn một lần nữa. – Michael

+0

gỡ lỗi từ xa :) Tôi rất vui vì nó đã giúp – Tilo

Các vấn đề liên quan