我刚刚将Box代码升级为OAuth2.
我们已经实现了允许用户在我们的Web服务器和他们的Box(以及SkyDrive,Dropbox,Google Drive)帐户之间传输文件的代码.用户的访问和刷新令牌存储在我们的数据库服务器中.
根据http://developers.box.com/oauth/,它表示 每个刷新令牌有效期为60天
SkyDrive和Drive都使用OAuth2,并且没有刷新令牌到期.是否可以使用非过期的刷新令牌?
某些应用程序可能不需要刷新令牌,因此您是否考虑引入新的OAuth2范围,例如
And*_*rsC 15
据我了解,Box OAuth2实现使用可选的刷新令牌轮换方案,每次发出访问令牌时,都会发出新的刷新令牌.请参阅oauth规范文档的第10.4节.这是一个可选功能,也是Google和Microsoft未使用的功能,因为它们为OAuth2实现发出永久刷新令牌(或者至少刷新具有足够长生命周期的令牌,因此它不是真正的问题).
在我的拙见中,这是Box的一部分非常不幸的选择.
您在应用程序中需要做的是,每次请求新的访问令牌时,您还必须保存您获得的新刷新令牌,以便在下次请求访问令牌时使用新的刷新令牌.这样,唯一的情况是,如果用户不使用他们的Box登录60天,那么最终将使用过期的刷新令牌.只要他们积极使用该应用程序,您将获得新的刷新令牌,并且60天的生命周期不是问题.到目前为止一切都很好,但这并不总是如何运作,现在是吗?
我的问题是,你必须在每个请求上保存刷新令牌,但是如果由于某种原因失败怎么办:网络中断,电池没电,有磁盘写入异常,你的应用被关闭了操作系统....然后你将不得不请求用户再次登录,用户将责怪应用程序开发人员.
如果您有足够的用户使用您的应用,这将会发生.也许只有2-5%的时间,但在我看来,这仍然是一个巨大的问题.
至少如果刷新令牌是(半)永久的,您可以重试auth进程直到它完成.然后你知道你已经保存了令牌,并且在上述情况发生时你可以继续使用它,也可以继续使用它,但旋转方案不是这样.
我已经在考虑为遇到此问题的用户制作标准支持电子邮件,并链接到此问题.
归档时间: |
|
查看次数: |
4270 次 |
最近记录: |