适用于JavaScript API客户端的OAuth2流
阅读最新的OAuth2草案,我不确定哪个流适合我正在开发的客户机——或者OAuth是否适合。我们的API提供的数据不是特定于用户的;拥有凭证只是授予用户访问我们数据的权限 我正在构建的JS客户端将是一个公共页面,不需要用户进行身份验证。相反,“用户”是JS客户机本身。也就是说,这个应用程序有一个特殊的帐户来访问我们的API 目前,我只是简单地添加了一个带有HTTP基本凭据的适用于JavaScript API客户端的OAuth2流,javascript,api,oauth,Javascript,Api,Oauth,阅读最新的OAuth2草案,我不确定哪个流适合我正在开发的客户机——或者OAuth是否适合。我们的API提供的数据不是特定于用户的;拥有凭证只是授予用户访问我们数据的权限 我正在构建的JS客户端将是一个公共页面,不需要用户进行身份验证。相反,“用户”是JS客户机本身。也就是说,这个应用程序有一个特殊的帐户来访问我们的API 目前,我只是简单地添加了一个带有HTTP基本凭据的授权头,由于许多原因,这是不好的。最重要的是,任何人都可以很容易地提取用户名和密码 我在OAuth草稿中看到的与此场景最接近
授权头,由于许多原因,这是不好的。最重要的是,任何人都可以很容易地提取用户名和密码
我在OAuth草稿中看到的与此场景最接近的匹配项是隐式授权授予,但似乎操作用户代理(web浏览器)的人必须与页面交互才能获得访问令牌。例如,必须单击一个按钮,然后往返到auth服务器,然后返回到JS客户端(通过重定向uri
)是不合适的
另一方面,如果不能使用私钥(因为它是JS),我无法想象如果不使用重定向uri
如何验证客户端
有人能帮我澄清一下吗?访问令牌被传递到url片段中的重定向uri。您可以通过解析window.location.hash值来获得它
另一方面,如果不能使用私钥(因为它是JS),我无法想象不使用重定向uri如何验证客户端
隐式授权类型不验证客户端。在某些情况下,可以通过用于向客户端传递访问令牌的redirct_uri来验证客户端身份。它依赖于资源所有者(其凭据)的存在和重定向URI的注册。此流中需要重定向\u uri。一些SDK说它是“可选的”,因为它们有一个默认配置,该配置通常与API服务所在的域相同,或者是在资源提供程序上预先配置的。这看起来像是简单cookie的一个例子。创建一个一次性密钥,交给每个客户端,几个小时后过期(并在第页上根据需要续订)。