在实现 OAuth2 协议时,是否可以将授权传递给第二个客户端,类似于 CAS 中的代理身份验证?
用户通过客户端网站进行身份验证,该网站已被授予访问该用户帐户的授权,该网站将访问权限(传递令牌或其他任何内容)授予另一个客户端。那可能吗?我需要让用户单独授权吗?我可以将刷新令牌传递给小程序吗?
从 OAuth 舞蹈返回的访问令牌有时称为“持有者令牌”,这掩盖了这样一个事实,即拥有它的任何人或任何人都被认为已通过身份验证并被授权访问资源。例如,您可以使用 JavaScript 流获取访问令牌并将其传递给服务器以发出请求。或相反亦然。访问令牌是访问。因此,通过这种方式,访问是可移植的。但是访问令牌通常会在一段时间后过期。
另一方面,刷新令牌不会过期,但通常与回调 URL 相关联。用刷新令牌交换访问令牌通常需要将回调请求发送到列入白名单的一组 URL。因此,您通常无法有效地传递刷新令牌。(注意:这并不意味着你不应该小心它,它本质上仍然是一个作用域密码,你肯定希望将其保密)。