我无法为访问令牌和刷新令牌交换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”错误。任何帮助深表感谢。
答案 0 :(得分:1)
经过大量研究,我能够找到解决问题的方法。
如this document中所述,特别是D部分:
客户端从授权请求访问令牌 服务器的令牌端点(包括授权代码) 在上一步中收到。提出要求时, 客户端通过授权服务器进行身份验证。 客户 包括用于获得授权的重定向URI 验证代码。
调用中提供的redirect_uri以获得身份验证代码必须必须与发送进行交换的redirect_uri匹配。希望这对某人有帮助。