Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
适用于JavaScript API客户端的OAuth2流_Javascript_Api_Oauth - Fatal编程技术网

适用于JavaScript API客户端的OAuth2流

适用于JavaScript API客户端的OAuth2流,javascript,api,oauth,Javascript,Api,Oauth,阅读最新的OAuth2草案,我不确定哪个流适合我正在开发的客户机——或者OAuth是否适合。我们的API提供的数据不是特定于用户的;拥有凭证只是授予用户访问我们数据的权限 我正在构建的JS客户端将是一个公共页面,不需要用户进行身份验证。相反,“用户”是JS客户机本身。也就是说,这个应用程序有一个特殊的帐户来访问我们的API 目前,我只是简单地添加了一个带有HTTP基本凭据的授权头,由于许多原因,这是不好的。最重要的是,任何人都可以很容易地提取用户名和密码 我在OAuth草稿中看到的与此场景最接近

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

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

目前,我只是简单地添加了一个带有HTTP基本凭据的
授权
头,由于许多原因,这是不好的。最重要的是,任何人都可以很容易地提取用户名和密码

我在OAuth草稿中看到的与此场景最接近的匹配项是隐式授权授予,但似乎操作用户代理(web浏览器)的人必须与页面交互才能获得访问令牌。例如,必须单击一个按钮,然后往返到auth服务器,然后返回到JS客户端(通过
重定向uri
)是不合适的

另一方面,如果不能使用私钥(因为它是JS),我无法想象如果不使用
重定向uri
如何验证客户端


有人能帮我澄清一下吗?

访问令牌被传递到url片段中的重定向uri。您可以通过解析window.location.hash值来获得它

另一方面,如果不能使用私钥(因为它是JS),我无法想象不使用重定向uri如何验证客户端


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

这看起来像是简单cookie的一个例子。创建一个一次性密钥,交给每个客户端,几个小时后过期(并在第页上根据需要续订)。