如何使用授权码从Battle.net OAuth请求访问令牌?

时间:2017-01-24 14:28:50

标签: oauth oauth-2.0 battlenet-api

我有一个业余爱好项目,使用battle.net登录。我想知道如何在收到授权码后从API获取访问令牌。

这是Oauth流量问题而非战网问题。

目前我可以成功为我的应用程序授权用户在dev.battle.net中注册,然后我尝试使用从battle.net登录返回的授权代码,通过向{{{ 1}}。 但是我一直收到这个错误:

https://<region>.battle.net/oauth/token

我使用postman扩展程序向该uri发送帖子请求。我用我的客户端ID和密码验证我的请求。我传递了redirect_uri(https://localhost),granty_type(authorization_code),代码(从上一个授权步骤返回的代码)。但是我一直收到上面的错误。

我无法在网上找到很多关于battle.net的信息。还有其他与oauth相关的帮助文章,但无法找到自己的方式。 想知道你是否可以帮我解决这个简单的问题。我只是想知道我在这里跳过什么。

以下是文档: https://dev.battle.net/docs/read/oauth

在我的mashery开发帐户的应用设置中添加了

https://localhostPostman post request screenshot

1 个答案:

答案 0 :(得分:2)

我再次尝试在宇宙中尝试几乎所有组合后解决了这个问题:)

申请步骤:

  • 不要对不同的访问令牌试用使用相同的授权令牌,它们无效
  • 始终在您测试的每个域上使用https,包括localhost,您 redirect_uri也必须是https。
  • 在从上一步获得的授权码中请求令牌时,您必须在POST请求的标题中使用“基本身份验证”。
  • 这是最重要的一个:对于请求令牌,将redirect_uri,客户端密钥和秘密作为POST表单参数传递给经过身份验证的请求。这很有趣,因为它已经是一个经过验证的请求;为什么我需要再次传递我的秘密?无论如何,这就是它的工作原理。

以下是全文: http://hakanu.net/oauth/2017/01/26/complete-guide-of-battle-net-oauth-api-and-login-button/

这是工作原型: https://owmatch.me

感谢。