如何保护oauth2 api不被删除的帐户有效令牌

时间:2015-01-09 15:31:08

标签: authentication oauth-2.0

我有一台服务器通过ouath2身份验证保护其api。

情景:

  1. 用户请求令牌(密码流)。
  2. 用户停用\删除其帐户。
  3. 令牌仍然有效(我知道可能会使令牌无效,但还有另一种情况是用户从2个不同的客户端(浏览器\移动设备)或2个不同的浏览器生成令牌 - >收到两个有效令牌 - >不可能使2个不同的令牌无效,使其仍然有效。)
  4. 我应该如何保护我的API免受其所有者不再相关的有效令牌的影响?

    1. 我应该在帐户停用\删除时刻使与用户相关的所有令牌无效吗?不确定在数据库中存储所有用户的令牌是否是个好主意。
    2. 在令牌验证后,我是否应该检查用户是否仍然处于活动状态?对于这样的最终案例来说,这是一个很大的开销。
    3. *在删除所有用户相关数据的情况下也没有问题(api的响应将为空),但是有些情况下这些数据没有被删除。

      谢谢!

1 个答案:

答案 0 :(得分:0)

您可以减少访问令牌的生命周期,并将其与刷新令牌结合使用。您的信息将永远与访问令牌的生命周期一样陈旧,因此将其设置为您认为可接受的任何内容,代价是您的客户端必须返回授权服务器以获取新的访问令牌(这是删除帐户检查发生)。请参阅:Why Does OAuth v2 Have Both Access and Refresh Tokens?