Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用OAuth实现自上次活动超时_Oauth_Oauth 2.0 - Fatal编程技术网

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

使用OAuth实现自上次活动超时,oauth,oauth-2.0,Oauth,Oauth 2.0,我们是: 使用OAuth进行授权和身份验证 使用隐式授权流(即客户端流) 发行相对短期的访问令牌(以小时为单位,而不是以周为单位) 我想提供一个与传统的过期cookie策略类似的体验,在传统的过期cookie策略中,您可以获得一定的时间,使您的凭据正常工作,但如果您在站点上保持活动状态,窗口将不断重置。我意识到这在OAuth中并不简单。是的,令牌发出时有一个到期时间,但大多数实现都保持该时间固定,不管活动如何 当发行寿命极长的代币时,这并不像授权集成(比如Twitter应用程序)时那样奇怪。

我们是:

  • 使用OAuth进行授权和身份验证
  • 使用隐式授权流(即客户端流)
  • 发行相对短期的访问令牌(以小时为单位,而不是以周为单位)
我想提供一个与传统的过期cookie策略类似的体验,在传统的过期cookie策略中,您可以获得一定的时间,使您的凭据正常工作,但如果您在站点上保持活动状态,窗口将不断重置。我意识到这在OAuth中并不简单。是的,令牌发出时有一个到期时间,但大多数实现都保持该时间固定,不管活动如何

当发行寿命极长的代币时,这并不像授权集成(比如Twitter应用程序)时那样奇怪。但是当使用OAuth进行面向用户的身份验证时,这很奇怪。如果我们发布一个短命令牌,用户在我们的站点上进行一个大的会话,他们的访问可能突然跑出来,即使它们处于某个中间。即使我们发行了24小时有效的代币,如果用户在23.75小时后回来,他们也会得到15分钟的有效时间,然后突然被解雇

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


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

您真的不能使用OAuth 2.0进行身份验证,部分原因是您描述的;请参阅此处以获得更详尽的文字:@HansZandbelt谢谢您的链接。我想如果我正在实现OpenID,我会在这里寻找。然而,它仍然没有明确提到我的用例——它只谈到处理注销事件。因此,我仍然不清楚OP将如何决定何时提前到期,以及它将如何与RP沟通。OpenID Connect会话管理规范不仅涉及注销,还涉及通过iFrame在OP和RP之间共享会话更改;除此之外,RP可以使用刷新令牌请求来更新其先前获得的id_令牌及其相关到期日