0
我正在使用Rails 4和Devise對用戶進行身份驗證。一旦用戶登錄,他們將被重定向到一個sinatra應用程序。我需要保護該頁面的路由免受未簽名用戶的影響。保護未登錄用戶的路由
所以我需要防止用戶訪問,如果他們沒有在簽署是路由/ kibana
這裏是我的路線文件:
devise_for :user
root 'pages#home'
mount Kibana::Sinatra::Web => '/kibana', :trailing_slash => true
任何幫助非常感謝,謝謝。這裏
編輯是我的ApplicationController文件
protect_from_forgery
before_filter :check_user
private
def check_user
if request.fullpath =~ /kibana/ && !user_signed_in?
authenticate :user do
end
end
end
然而,沒有結果,我需要。當我訪問localhost:3000時,它將我重定向到用戶登錄,並提示我需要登錄,但是當我訪問/ kibana /時,它只是顯示它而不必登錄。
我必須使用控制器來保護路線嗎? – 2014-10-29 17:48:50
'routes.rb'只給出應用程序路由的定義。您無權訪問此處的請求。 – blelump 2014-10-29 17:53:50
我明白了。我嘗試了你的解決方案,但是我仍然可以訪問/ kibana /而不必登錄。 – 2014-10-29 18:06:51