更具体:

我实际上正在尝试使用他们支持 OAuth 2.0 的新 Basecamp api 集成到 Basecamp。感谢他们糟糕的资源和文档,我被困在这个 documentation 的第 4 名,它说我必须发出一个反向 channel 请求来获取访问 token (我已经成功完成了 1-3 个步骤,这意味着我有验证码和状态)。

因此,如果有人对这只野兽有任何想法,请帮助我解决这个问题;)

我使用了 jso OAuth 2.0 lib,它帮助我完成了 1-3 个步骤,但这个 lib 使用 隐式身份验证授权 和 basecamp 使用 授权代码授权 。所以我想我必须做一些手动的客户端 - 服务器舞蹈,这就是为什么我需要知道这个 Back Channel 请求意味着什么以及如何制作一个?

最佳答案

如果您正在开发 javascript 客户端应用程序,那么您使用的是错误的 OAuth 2 方案。链接文档中使用的方案称为“授权代码授予”,适用于部署到远程服务器的 Web 应用程序。 backchannel用于在app和auth服务器之间在后台获取token,不涉及用户,所以token不会暴露给用户。由于嵌入式客户端(javascript、移动应用程序等)没有很好分离的远程环境,因此无论如何它们都很容易受到攻击,因此有一个简化的“隐式授权”场景,其中不包括此反向 channel 查询。您应该使用隐式授权流程。

根据您链接的文档,Basecamp 使用了一个非常过时的 OAuth2 草案,即版本 5,规范是在版本 31 之后发布的。在旧版本中,第一个场景由“type=web_server”标识(更改为“response_type=规范中的代码”),而您需要“type=user_agent”(规范中当前为“response_type=token”)才能使用隐式授权方案。我不知道 Basecamp 是否有适当的文档,链接的文档说它受支持,但没有别的。

关于jquery - "Backchannel Request"一词是什么意思以及如何发出反向 channel 请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25161803/

10-09 16:50