我有一个 OAuth 后端,它存储 Android 应用程序的刷新令牌 - 如果用户卸载该应用程序,我无法删除他们的刷新令牌

I have an OAuth backend that stores refresh tokens for an Android app - if the user uninstalls the app I have no way of deleting their refresh token

所以我想创建一个后端,允许我的 Android 应用程序(如 Facebook、Twitter 等)无限期持续登录。因此,我将用户刷新令牌的哈希值存储在我的数据库中并在每次请求刷新时将其与客户端的刷新令牌进行比较。如果客户端注销,它会发送一个删除刷新令牌的 "api/logout" 请求。但是,有一种极端情况,如果用户在未注销的情况下删除应用程序,我无法从数据库中撤销他们的刷新令牌,因此它会永远作为陈旧数据放置。有什么办法可以处理这种情况吗?

我通过添加客户端在注销时排队的 "logout" API 解决了这个问题,这会删除客户端的刷新令牌,以及每个月运行的 cron-job删除 1 年以上未触及的刷新令牌。