隐式授权类型用于获取访问令牌(它没有 支持发布刷新令牌,并针对公众进行了优化 已知操作特定重定向URI的客户端。这些客户 通常使用脚本语言在浏览器中实现
刷新令牌不适合隐式授权。 我的问题是:
答案 0 :(得分:0)
原生应用应该使用授权代码授权。所以你可以使用刷新令牌。有RFC讨论了该原因(主要是安全性)以及平台特定的详细信息。有一个重要的含义 - 您的OAuth2提供程序的/token
端点不应要求获取令牌进行身份验证,因为您的应用程序无法保证其客户端的安全。
答案 1 :(得分:0)
一旦访问令牌过期,您不一定需要刷新令牌才能继续使用。如果您必须坚持让客户使用隐式流程,那么他们可能能够利用cookie和重定向来持续获得短期令牌而无需用户交互。提供客户端应用程序正在使用可以使用永久cookie的HTTP代理。例如在网络浏览器中运行的应用程序。
然后,密钥是在第一次请求令牌时让用户登录身份提供者。
这是由身份提供者(我猜?)为用户代理持久创建HTTP cookie完成的。大多数大型身份提供商都会这样做 - 即让您登录。</ p>
现在,当令牌过期时,您的客户端应用程序将再次通过Oauth进程发回用户,但是,由于用户仍然登录到身份提供商,身份提供商可以从cookie中对用户进行身份验证,而不会提示输入凭据。
如果您的客户在后台线程上发起此令牌续订,他们可以正常请求令牌,并通过HTTP重定向和Cookie的魔力,从您那里获取新令牌,无需用户操作。
再次 - 刷新令牌的替代方案依赖于客户端设备能够使用永久性cookie,并且您的用户仍然登录并且您的auth服务器处理http cookie。如果您的客户使用本机应用程序,则此解决方案可能无效。
在未来,您将有100个客户端,也许您的auth平台应该为不同的客户提供不同的身份验证流程。
关于combine_first
的这篇文章可能会让您感兴趣。