OAuth 2.0授权第三方应用的工作流程

时间:2016-10-13 13:37:55

标签: oauth oauth-2.0

我正在为我的应用程序实现一个App Store,第三方开发人员可以根据我的API构建自己的应用程序。我有一切工作并理解OAuth 2.0的概念,但我没有看到外部应用程序如何通过一小时后过期的访问代码进行永久访问。现在,您可以使用刷新令牌来请求新的令牌,但是那段令牌也会在一段时间后过期。

那么当该应用的用户只允许一次外部应用时,外部应用如何连续连接到我的API?

我的授权码在10分钟后过期,1小时后访问令牌,2周后刷新令牌。

我没有看到应用程序如何在这些时间段之后检索数据,而用户无需通过oauth重新允许/重新安装应用程序。

Facebook等大公司如何接近这个?他们是否拥有永不过期的访问令牌?

1 个答案:

答案 0 :(得分:2)

扩展我的评论,使用承载令牌时的一般建议是,应该减少其生命周期,以减轻访问令牌受到影响的影响。

另一方面,每小时左右询问用户凭据将是UX的噩梦,因此OAuth 2.0具有refresh tokens的概念,通常具有更长的生命周期,允许应用程序请求新的访问令牌需要用户干预。

我不熟悉Facebook持久令牌的实施细节,所以我不会对此发表评论,但他们很可能是安全的。但是,您不是Facebook,因此我建议您遵循OAuth 2.0 / OpenID Connect等公共标准,而不是尝试提供自定义方法。

关于您对永不过期的刷新令牌的评论,这是一个可接受的解决方案,但它们的生命周期只是等式的一部分。您应该考虑它们是多用途还是一次性使用,它们只能由发布它们的客户端应用程序使用,由于难以确保安全存储等,它们不应被基于浏览器的应用程序使用。