gpt4 book ai didi

ruby-on-rails - 如何手动撤销 Doorkeeper token ?

转载 作者:行者123 更新时间:2023-12-04 06:28:48 31 4
gpt4 key购买 nike

假设我有一个已从系统中软删除的用户。我也想撤销他们的 token 。实现这一目标的最佳方法是什么?是否像做类似的事情一样简单
Doorkeeper::AccessToken.where(resource_owner_id: deleted_user.id).each(&:revoke)
还是有更好的方法?

最佳答案

您可以这样做,其中 application_id是 Doorkeeper 应用程序 ID 和 resource_owner是被删除的用户:

Doorkeeper::AccessToken.revoke_all_for(application_id, resource_owner)

由于您特别询问了撤销用户的所有 token (未提及应用程序),您的选择是:
  • 每个要撤销的应用程序 ID 调用一次(如果应用程序 ID 很少,应该没问题),或
  • 调用一次,但传递多个应用程序 ID 的数组而不是一个(此方法对我有用),或
  • 修改删除应用程序 ID
  • 范围的方法

    对我有用的方法 2 示例:
    class User
    def revoke_all_access_tokens!
    application_ids = Doorkeeper::Application.pluck(:id) + [nil]
    Doorkeeper::AccessToken.revoke_all_for(application_ids, self)
    end
    end

    请注意 + [nil]如果您还想删除没有应用程序 ID 的 token (取决于您使用 Doorkeeper 的方式),则这是必需的。

    code for this method如果您需要自定义它,它很小且易于理解。

    关于ruby-on-rails - 如何手动撤销 Doorkeeper token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46432383/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com