繁体   English   中英

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

[英]Appropriate OAuth2 flow for JavaScript API client

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

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

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

在这种情况下,我在OAuth草案中看到的最接近的匹配项是“隐式授权授予”,但似乎仍然需要操作用户代理(网络浏览器)的人员与页面进行交互才能获得访问令牌。 例如,必须单击一个按钮,然后往返于auth服务器,然后再回到JS客户端(通过redirect_uri )是不合适的。

另一方面,由于无法使用私钥(因为它是JS),因此我无法想象如果不使用redirect_uri可以如何验证客户端。

有人可以让我挺直吗?

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

另一方面,由于无法使用私钥(因为它是JS),因此我无法想象如果不使用redirect_uri,如何可以验证客户端。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM