“需要登录”错误。使用Google API获取oauth2令牌后如何登录

时间:2019-09-19 20:48:18

标签: node.js express oauth-2.0 passport.js google-analytics-api

我正在构建一个小型的Node / React应用,我在其中尝试实现OAuth2 Google来请求Google Analytics API。我正在使用Passport.js处理身份验证。

我能够正确获取令牌:

router.get(
    "/auth/google/callback",
    passport.authenticate("google", { failureRedirect: "/error", session: false }),
    function(req, res) {
        var token = req.user.token;
        res.redirect("http://localhost:5000/?token=" + token);
    }
);

但是,当尝试调用Google Analytics(分析)管理API时,出现以下错误Error: Login Required

router.get('/getData', function(req, res) {
    googleAccounts.management.profiles.list(
      {
        accountId: '~all',
        webPropertyId: '~all'
      },
      (err, data) => {
        if (err) {
          console.error('Error: ' + err)
          res.send('An error occurred')
        } else if (data) {

          Console.log(data)

        }
      }
    )
})

如何登录?我缺少什么步骤?

1 个答案:

答案 0 :(得分:0)

您没有发送访问令牌,除非您使用gapi的内置身份验证,否则必须在HTTP授权标头中手动发送访问令牌。

请使用以下代码片段实现相同的目的。

function listViews() {
  gapi.client.setToken{
    access_token: <access-token>
  })
  ... rest of the function
相关问题