Начинающий узел.js приложение с использованием passport + googleapis
Я работаю с узлом.js, чтобы попытаться сделать приложение библиотеки книг с помощью Google books API и passport с помощью стратегии 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) {});
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); });