Google oauth& apis怎么做

时间:2017-07-19 16:00:43

标签: node.js oauth google-calendar-api

我找不到任何关于使用google oauth和google apis的文档。目前,我这样做,但它不是一个完整的指南:https://developers.google.com/identity/sign-in/web/server-side-flow

我想做什么:

我有一个基于节点的应用程序,带有一个简单的JS前端。

  • 需要谷歌登录。
  • 当用户登录时,会在我的服务器上为他们创建用户名。
  • 它在我的服务器上以某种方式存储了一些谷歌令牌。
  • 以某种方式为我的后端提供service级别的访问权限。
  • 此后端可以随时进行更改并阅读日历信息,无需用户交互。

目前我有一个google登录信息,它会返回如下代码验证码:localhost:8000/?code=123。我不知道如何处理该身份验证代码。不幸的是,仅为JavaPython提供了文档。

接下来就是获取身份验证令牌(不知何故),然后找出如何授予service account访问权限。

任何人都知道怎么做?

1 个答案:

答案 0 :(得分:0)

你看过PassportJS了吗?它为Google

提供了非常可靠的实现

我已经为Facebook做了类似的事情,并将其粘贴在这里以防万一:

首先,我将以下内容添加到我的节点应用程序中:

var passport = require('passport');
var FacebookStrategy = require('passport-facebook').Strategy;

然后,下面:

app.use(passport.initialize());
app.use(passport.session());

然后,下面:

passport.serializeUser(function(user, done){
    done(null, user.id);
});

passport.deserializeUser(function(id, done){
    userModel.findById(id, function(err, user){
        done(err, user);
    });
});

passport.use(new FacebookStrategy({
clientID: config.facebook.appID,
clientSecret: config.facebook.appSecret,
callbackURL: config.facebook.callbackURL,
profileFields: ['id', 'displayName', 'photos', 'emails', 'birthday', 'location', 'bio', 'likes.limit(100)']
},
function(accessToken, refreshToken, profile, done){
    //Do whatever I want
}
)
);

我不会解释所有这些 - 但看看它是否有助于您整合Google应用。祝你好运!