如何在服务器上修复“ redirect_uri_mismatch”

时间:2019-07-29 12:03:22

标签: javascript node.js cordova google-api google-api-nodejs-client

我正在尝试将Google OAuth 2.0集成到我的使用Phonegap Build(云编译器)构建的Cordova应用程序中。

我使用cordova-plugin-googleplus进行客户端授权 和google-api-nodejs-client用于我的node.js服务器。

它应该如何工作的主要思想described here。 简而言之:客户端生成一次性代码(authCode)并将其发送到服务器,然后服务器必须将该代码交换为accessToken。

问题是客户端成功完成授权过程,生成authCode,将其发送到服务器,然后服务器在响应正文中引发“ redirect_uri_mismatch”错误。

这是后端代码

const oauth2Client = new google.auth.OAuth2(
    'CLIENT_ID.apps.googleusercontent.com',
    'CLIENT_SECRET',
    'postmessage'
);

const url = oauth2Client.generateAuthUrl({
    access_type: 'offline'
});

const auth = async function(code){
        const {tokens} = await oauth2Client.getToken(code);
        oauth2Client.setCredentials(tokens);
};

和客户端

window.plugins.googleplus.login(
{
    'webClientId': 'CLIENT_ID.apps.googleusercontent.com',
    'offline': true
};

我确定OAuth 2.0客户端配置正确。我有2个OAuth 2.0客户端ID。第一个是Web应用程序,第二个是具有SHA-1代码的Android应用程序,我敢肯定这是正确的。

我也有Web应用程序,它使用相同的OAuth 2.0客户端,相同的服务器,并且运行良好,仅当我使用cordova-plugin-googleplus插件生成authCode时才会发生错误

0 个答案:

没有答案