【问题标题】:Google oauth & apis how to do it谷歌 oauth & apis 怎么做
【发布时间】:2017-12-25 00:35:11
【问题描述】:

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

我想做什么:

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

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

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

接下来是获取身份验证令牌(以某种方式),然后弄清楚如何授予我的 service account 访问权限。

有人知道怎么做吗?

【问题讨论】:

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


【解决方案1】:

你看过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 应用程序集成。祝你好运!

【讨论】:

  • 是的,这实际上是我尝试的第一件事。我无法让它工作。那一个做google api访问吗?卡住了,因为这些策略都没有任何文档。
  • 我将编辑我的评论以添加更多信息(但对于 Facebook),但它会给你一个想法。
猜你喜欢
  • 2012-11-25
  • 1970-01-01
  • 2010-09-13
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-10
相关资源
最近更新 更多