使用OAuth实现自上次活动超时

时间:2014-11-18 05:03:23

标签: oauth oauth-2.0

我们是:

  • 使用OAuth进行授权和身份验证
  • 使用隐式授权流程(即客户端流程)
  • 发行相对短期的访问令牌(以小时而非数周计算)

我希望为传统的到期Cookie政策提供类似的体验,您可以获得一定的时间来使用您的凭据,但如果您在网站上保持活跃状态​​,该窗口会不断重置。我意识到这在OAuth中并不简单。是的,令牌会被发出到期时间,但大多数实施都会将时间固定,无论活动如何。

在授权集成(例如,Twitter应用程序)时发布非常长寿的令牌时,这并不奇怪。但是,当使用OAuth进行面向用户的身份验证时,这很奇怪。如果我们发布一个短期令牌并且用户在我们的网站上进行大型会话,那么即使他们处于中间状态,他们的访问也可能会突然耗尽。即使我们发出了24小时有效的令牌,如果用户在23.75小时后回来,他们将获得15分钟的好时间,然后突然开始。

我试图弄清楚如何在坚持OAuth机制的同时为用户提供更好的体验。到目前为止,我最好的想法是更改服务器端实现以更新每个经过身份验证的请求上令牌的到期日期(这只能起作用,因为我们的令牌有一个服务器端组件 - 我不知道它是怎么做的如果我们去了自包含的令牌路线,那就工作了。然后,为了让客户评估更新的到期时间,我们希望将其与我们的响应一起发回,可能在标头中,或JSON对象中的meta属性。

这种方法似乎有点复杂,但可行。有没有更好的办法?还有其他人处理过这个问题吗?我甚至不敢尝试?

0 个答案:

没有答案