Google授权代码流程-获取访问令牌返回“ unauthorized_client”

时间:2018-06-28 19:47:55

标签: oauth-2.0 google-authentication

我无法为访问令牌和刷新令牌交换Google授权码。

使用nodejs googleapis客户端库,我能够生成Auth URL并通过调用该URL成功获得auth代码。当我尝试在服务器上交换此身份验证代码时,问题仍然存在。

我正在使用以下参数对“ https://www.googleapis.com/oauth2/v3/token”进行POST调用:

tokenData = {
    code: [code from client],
    client_id: [client ID used to get the auth code client-side],
    client_secret: [client secret associated with the ClientID],
    grant_type: 'authorization_code',
    redirect_uri: 'postmessage'
};

拨打电话后,我仅收到消息:

{error=unauthorized_client, error_description=Unauthorized} 

我已经三重检查了客户端用来获取身份验证代码的ClientID与服务器上的ClientID相匹配,并且客户端的url已添加到Google控制台上的授权javascript来源中。

我已经进行了广泛的Google搜索,尝试找到一种解决方案,但是似乎没有什么文档可以证明“ unauthorized_client”错误。任何帮助深表感谢。

1 个答案:

答案 0 :(得分:1)

经过大量研究,我能够找到解决问题的方法。

this document中所述,特别是D部分:

  

客户端从授权请求访问令牌           服务器的令牌端点(包括授权代码)           在上一步中收到。提出要求时,           客户端通过授权服务器进行身份验证。 客户           包括用于获得授权的重定向URI           验证代码。

调用中提供的redirect_uri以获得身份验证代码必须必须与发送进行交换的redirect_uri匹配。希望这对某人有帮助。