如何在googleapi上禁用检查重定向网址?

时间:2019-04-09 09:48:32

标签: node.js oauth google-api google-oauth google-api-nodejs-client

我在以下说明中遵循此流程:https://developers.google.com/identity/sign-in/web/server-side-flow由Google进行身份验证。

在BackEnd服务器中,我使用lib:google-auth-lib

const { OAuth2Client } = require('google-auth-library');

async function login (code) {
   const auth = new OAuth2Client(
      googleConfig.clientId,
      googleConfig.clientSecret,
      googleConfig.redirect
   );

   const data = await auth.getToken(code);
}

但是目前,我必须处理重定向url以与console.google项目中的config匹配。

在这种情况下,我认为不需要检查重定向网址。

那么我如何禁用检查重定向URL或任何想法?

1 个答案:

答案 0 :(得分:1)

重定向uri验证检查是Google授权过程的一部分。您不能在Web项目上禁用它。授权服务器需要知道将授权代码返回到哪里。如果您正在运行Web应用程序,则将始终需要定义重定向uri。

另一方面,如果您正在运行服务器端应用程序或已安装的应用程序,则不应使用Web浏览器客户端,而应使用不使用重定向uri的本机客户端。

此示例node quickstart旨在作为控制台应用程序运行,以访问Google Drive API。可能会对您有帮助。

/**
 * Create an OAuth2 client with the given credentials, and then execute the
 * given callback function.
 * @param {Object} credentials The authorization client credentials.
 * @param {function} callback The callback to call with the authorized client.
 */
function authorize(credentials, callback) {
  const {client_secret, client_id, redirect_uris} = credentials.installed;
  const oAuth2Client = new google.auth.OAuth2(
      client_id, client_secret, redirect_uris[0]);

  // Check if we have previously stored a token.
  fs.readFile(TOKEN_PATH, (err, token) => {
    if (err) return getAccessToken(oAuth2Client, callback);
    oAuth2Client.setCredentials(JSON.parse(token));
    callback(oAuth2Client);
  });
}