如何将 Passport.js Google OAuth2 策略与 Google api 一起使用?

How to use Passport.js Google OAuth2 strategy with Google api?

我已经在我的网站上添加了 passport google oauth 2.0,它工作正常。

这是对 google 的初始身份验证调用:

router.get("/google", 
            passport.authenticate('google',  
                                  { scope:  ["https://www.googleapis.com/auth/drive", 
                                   "https://www.googleapis.com/auth/userinfo.profile"]
          }));

但是当我访问驱动器 API 时,出现错误。

例如,当我使用:

  const drive = google.drive({ version: "v3", auth});
  drive.files.create(
    {
      .......
}

我收到一个错误:

code: 401, errors: [ { domain: 'global', reason: 'required', message: 'Login Required', locationType: 'header', location: 'Authorization' } ]

有没有办法在登录期间使用令牌并协调护照登录和 api 访问?

您的示例中 auth 是什么?

你试过了吗:

       const oauth2Client = new google.auth.OAuth2()
        oauth2Client.setCredentials({
            'access_token': req.user.accessToken
        });

        const drive = google.drive({
            version: 'v3',
            auth: oauth2Client
        });