2016-09-23 56 views
0

我在Rails 4.X應用程序中使用Gatekeeper gem。有沒有辦法保護管理Oauth應用程序的路線?如何在Rails中保護門衛路線?

例如,我希望這個URL http://localhost:3000/oauth/applications可用於被標記爲管理員的Devise用戶。

我目前的routes.rb看起來像這樣。

Rails.application.routes.draw do 
mount RailsAdmin::Engine => '/admin', as: 'rails_admin' 

use_doorkeeper 
devise_for :users 

感謝您提前幫助。

回答

1

似乎門衛可以處理它的初始化。只需添加它,它就可以工作。

admin_authenticator do 
    redirect_to new_user_session_url unless current_user && current_user.admin? 
end 
0

我想用色器件,你可以做這樣的事情

Rails.application.routes.draw do 
    mount RailsAdmin::Engine => '/admin', as: 'rails_admin' 
    devise_for :users 
    authenticate :user, lambda { |u| u.admin? } do 
    # the same would be authenticate :user, -> (u) { u.admin? } do 
    use_doorkeeper 
    end 
end 

這表明你的User來響應admin?方法。

+0

是的。但我認爲最好的解決方案是使用門​​衛中的邏輯進行初始化。修復了這個問題。謝謝你的回答,我也會試試。 :) – NewbieOnRails

+0

它肯定有效(我剛剛測試過自己)。是的,如果gem允許在初始化器中配置它,這將是適當的解決方案。 – Aleksey