适用于JavaScript API客户端的OAuth2流程

时间:2011-11-12 00:21:30

标签: javascript api oauth

阅读最新的OAuth2草案,我不确定哪个流程适合我正在开发的客户端 - 或者OAuth是否合适。从我们的API提供的数据并非特定于用户;拥有凭证只是授予用户访问我们数据的权限。

我正在构建的JS客户端将是一个公共页面,不需要用户进行身份验证。相反,“用户”是JS客户端本身。也就是说,只有这个应用才能访问我们的API。

目前我只是添加一个带有HTTP Basic凭据的Authorization标头,这有很多原因。最重要的是,任何人都可以非常轻松地提取用户名和密码。

我在此方案的OAuth草稿中看到的最接近的匹配是隐式授权授予,但似乎操作用户代理(Web浏览器)的人必须与该页面进行交互才能获得访问令牌。不得不说,单击一个按钮,然后往返于auth服务器,然后回到JS客户端(通过redirect_uri)是不合适的。

另一方面,由于无法使用私钥(因为它是JS),我无法想象如何在不使用redirect_uri的情况下验证客户端。

有人能让我直截了当吗?

1 个答案:

答案 0 :(得分:0)

访问令牌传递给url片段中的redirect_uri。您可以通过解析window.location.hash值来获取它。

  

另一方面,由于无法使用私钥(因为它是JS),我无法想象如何在不使用redirect_uri的情况下验证客户端。

隐式授权类型不对客户端进行身份验证。在某些情况下,可以通过用于将访问令牌传递给客户端的redirct_uri来验证客户端身份。它依赖于资源所有者(其凭据)的存在以及重定向URI的注册。此流程中需要redirect_uri。一些SDK表示它是“可选的”,因为它们具有默认配置,通常与API服务所在的域相同,或者在资源提供程序上预先配置。