【问题标题】:Beginner node.js app using passport + googleapis使用护照 + googleapis 的初学者 node.js 应用程序
【发布时间】:2013-09-07 08:21:19
【问题描述】:

我正在使用 Node.js 尝试使用 Google 图书 API 和护照以及 Google 身份验证策略制作图书库应用程序。到目前为止一切顺利,我可以验证和访问 API。现在可能是一个愚蠢的问题,如何让数据重新用于我的集合视图?身份验证后我可以访问 Google 数据,然后我需要重定向到集合,但是如何将这些数据构建到我的新视图中?

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

app.get('/auth/google/callback', passport.authenticate('google', {failureRedirect: '/'}), function (req, res) {
  // Successful authentication, get data and redirect to user collection
  googleapis.discover('books', 'v1').execute(function (err, client) {
    oath2Client.credentials = {
      access_token: req.user.accessToken,
      refresh_token: req.user.refreshToken
    };
    var req1 = client.books.mylibrary.bookshelves.list().withAuthClient(oath2Client);
    req1.execute(function (err, bookshelves) {});
  });
  res.redirect('/collection');
});

app.get('/collection', routes.collection, function (req, res) {});

【问题讨论】:

    标签: node.js google-api passport.js


    【解决方案1】:

    您可以做的是将数据存储在会话变量中,然后从另一个路由中获取它。这是一个存储字符串并从另一个页面访问它的示例:

    //enable session support
    app.use(express.cookieParser());
    app.use(express.session({
      secret: 'secret key for signed cookies'
    }));
    
    app.get('/foo', function(req, res) {
      req.session.property = 'property value';
      res.redirect('/bar');
    });
    
    app.get('/bar', function(req, res) {
      //the session variables can be accessed here too
      res.send(req.session.property);
    });
    

    【讨论】:

    • 完美!今天回家后我会试一试。
    猜你喜欢
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2010-09-28
    相关资源
    最近更新 更多