【发布时间】:2019-06-18 20:19:57
【问题描述】:
假设我们有Users(谁可以创建Doorkeeper::Applications)。另一方面,我们的应用程序有Admins 理想情况下需要检查创建的每个应用程序(并且可能对创建的用户进行背景检查等等)以及它的范围。他们会 #approve! 或 #reject! 应用程序,只有当它是 approved 时,应用程序才能调用 API。
注意:据我所知,#approve!、#reject! 和 approved 不与 Doorkeeper 一起使用。它们是假设的,所以我的问题更清楚。
这是可以通过 Doorkeeper(或扩展)实现的行为吗?我认为配置文件中没有描述类似的内容。如果没有,您是否有任何关于如何做到这一点的一般步骤?
我认为这样的事情可以工作
class Api::V1::TransactionalBaseController < Api::V1::AuthableController
before_action :doorkeeper_authorize!
before_action :check_application_status!
private
def check_application_status!
application = doorkeeper_token.application
unless application.approved?
raise Doorkeeper::Errors::ApplicationForbidden.new
end
end
end
如果这可能对 gem 的其他用户有所帮助,我愿意打开 PR 或开发扩展来实现这一点。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-5 doorkeeper