【问题标题】: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我有一个 OAuth 后端,用于存储 Android 应用程序的刷新令牌 - 如果用户卸载该应用程序,我无法删除他们的刷新令牌
【发布时间】:2018-04-18 23:55:33
【问题描述】:

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

【问题讨论】:

  • 不,您不能在客户端执行此操作。我能看到的唯一可靠的方法是在后端对令牌使用过期时间方法,如果在设定的时间段内没有与客户端进行任何交互,则不时运行一些更清洁的方法
  • 在六个月内未使用的刷新令牌可以被删除大多数身份验证服务器的撤销旧的未使用令牌。因此,假设您正在记录他们上次访问您的系统的时间,这应该可以工作
  • @Kulebin 我创建了一个 cron 作业来完成这个,谢谢

标签: android database security oauth backend


【解决方案1】:

我通过添加客户端在注销时排队的“注销”API 解决了这个问题,该 API 删除客户端的刷新令牌,以及每月运行的 cron-job 删除没有刷新的刷新令牌1 年以上被感动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-29
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 2017-11-21
    • 1970-01-01
    • 2014-08-06
    相关资源
    最近更新 更多