我在Rails 4.X应用程序中使用了Doorkeeper gem。有没有办法保护管理Oauth应用程序的路线?
例如,我希望此网址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
先谢谢你的帮助。
答案 0 :(得分:1)
似乎门卫可以处理它的初始化器。只需添加它就可以了。
admin_authenticator do
redirect_to new_user_session_url unless current_user && current_user.admin?
end
答案 1 :(得分: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?
方法。