使用密碼授予OAuth-2流,如果非管理員用戶請求使用scope: 'admin'
的訪問令牌,我希望能夠拒絕發生這種情況 - 我正在使用門衛與設計。門衛 - 如果用戶不是管理員,則拒絕訪問令牌請求
當前任何舊用戶都可以詢問任何範圍,並且默認情況下它會被授予。
我看不出在門衛中執行這種邏輯的明顯掛鉤。在哪裏/如何配置這個?
使用密碼授予OAuth-2流,如果非管理員用戶請求使用scope: 'admin'
的訪問令牌,我希望能夠拒絕發生這種情況 - 我正在使用門衛與設計。門衛 - 如果用戶不是管理員,則拒絕訪問令牌請求
當前任何舊用戶都可以詢問任何範圍,並且默認情況下它會被授予。
我看不出在門衛中執行這種邏輯的明顯掛鉤。在哪裏/如何配置這個?
這對門衛3.x目前是不可能的。您需要修改OAuth::PreAuthorization
類,或者爲該gem添加所需的邏輯。
我有類似的需求,所以我做了這個配置選項,你可以指定你自己的preauth
類。代碼是here。門衛維護人員指示they wanted to think more about the feature。
使用看門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