2013-10-12 146 views
1

说我开发一个Evernote的或YouTube客户端,并在用户登录后,应用程序会从API服务器授权令牌。无缝授权令牌到期应付的客户端应用程序

然后我用这个令牌,直到晚些时候,该令牌过期与服务器进行交互。

最关键的是,我不知道,直到服务器与像“令牌过期”的消息返回一个错误此令牌已过期。然后,我必须获取新的令牌。也许它发生在用户发布消息的时候。

那么,什么是优雅的方式来处理这种情况?我想结合获取新的令牌和继续最后一个请求,以便用户感觉它像往常一样工作。

回答

1

这取决于您正在使用的流程。但是一般来说,如果您能够刷新认证令牌(通过刷新令牌)而无需再次将用户重定向到凭据,则应该无缝地执行此操作。

此外,你应该知道什么时候令牌即将过期。如果您针对OAuth 2实现进行编码,auth令牌响应应该给您一个'expires_in'字段作为时间跨度,告诉您令牌在发布给您之后将过期多长时间。

+1

是,身份验证令牌确实有'expires_in'领域,但我们的服务器开发说不是那么准确:( – limboy

+1

是啊,它应该被用来作为与误差小幅度的参考。该字段填他们的服务器上当令牌生成时并没有考虑令牌通过网络到达客户端/应用程序的时间:-)您可以尝试使用发送请求的时间进行补偿,而不是收到响应的时间。但为防万一,总是处理令牌过期错误是一种好习惯。无论如何,您可以通过在令牌到期之前的固定时间刷新您的令牌来预先排除错误。这样你可以保存你的客户的电话。 –

相关问题