使用PassportJS谷歌认证与nodejs谷歌api库



我目前正在考虑使用nodejs客户端实现一个googleapi:

https://github.com/google/google-api-nodejs-client/

我正在尝试使用护照进行身份验证,这似乎在上有效

passport.use(new GoogleStrategy({
  clientID: GOOGLE_CLIENT_ID,
  clientSecret: GOOGLE_CLIENT_SECRET,
  callbackURL: "http://localhost:3000/auth/google/callback"
},
function(accessToken, refreshToken, profile, done) {
    process.nextTick(function () {
      var user = {
        id: profile.id,
        email: profile.email,
        firstName: profile.given_name,
        lastName: profile.family_name,
        accessToken: accessToken
      };
      return done(null, user);
    });
  }
  ));

在我的谷歌认证回调:

app.get('/auth/google/callback',
  passport.authenticate('google', { failureRedirect: '/login' }),
  function(req, res) {
    //do something here with the google api
  });

我可以拿到req.user,这有accessToken

然而,Google api nodejs客户端的文档并不清楚如何使用accessToken。所包含的示例显示OAauth2Client正在检索令牌,但我想这部分内容已经使用Passport介绍过了?

我不熟悉google-api-nodejs-client,但这在他们的文档中:

oauth2Client.credentials = {
  access_token: 'ACCESS TOKEN HERE',
  refresh_token: 'REFRESH TOKEN HERE'
};
client
  .plus.people.get({ userId: 'me' })
  .withAuthClient(oauth2Client)
  .execute(callback);

我想你可以将凭据设置为Passport提供的凭据,一切都会好起来的。

尽管如此,老实说,我发现这些API包装器真的是人为的,建议只使用request。通过这种方式,您可以使用熟悉的模块从任何提供程序访问任意API服务。

相关内容

  • 没有找到相关文章

最新更新