2014-10-11 35 views
2

使用密碼授予OAuth-2流,如果非管理員用戶請求使用scope: 'admin'的訪問令牌,我希望能夠拒絕發生這種情況 - 我正在使用門衛與設計。門衛 - 如果用戶不是管理員,則拒絕訪問令牌請求

當前任何舊用戶都可以詢問任何範圍,並且默認情況下它會被授予。

我看不出在門衛中執行這種邏輯的明顯掛鉤。在哪裏/如何配置這個?

回答

0

這對門衛3.x目前是不可能的。您需要修改OAuth::PreAuthorization類,或者爲該gem添加所需的邏輯。

我有類似的需求,所以我做了這個配置選項,你可以指定你自己的preauth類。代碼是here。門衛維護人員指示they wanted to think more about the feature

0

使用看門4.x.x我檢查了「管理」範圍的情況下,如果當前用戶是管理員在看門的初始化:

resource_owner_from_credentials do 
    user = User.find_for_database_authentication(login: params[:login]) 
    if user&.active_for_authentication? && 
    user.valid_for_authentication? { user.valid_password? params[:password] } 
     admin_scope = params[:scope]&.split&.include?('admin') 
     user if admin_scope && user.admin? || !admin_scope 
    end 
    end 
end 
相關問題