2015-12-22 2 views
0

Я новичок в MEAN Stack, у меня проблемы с сохранением доступа к паспорту-facebook. Заказывайте на localStorage. Как мне это сделать? Ниже приведена моя настройка.Сохранить accessToken для локального хранилища с использованием паспорта-facebook

passport.use(new FacebookStrategy({ 
     clientID: passport_config.facebook.clientID, 
     clientSecret: passport_config.facebook.clientSecret, 
     callbackURL: passport_config.facebook.callbackURL 
     }, 
     function(accessToken, refreshToken, profile, done) { 
     FBAccount.findOne({fbId : profile.id}, function(err, oldUser){ 
      if(oldUser){ 
       done(null,oldUser); 
      }else{ 
       var newUser = new FBAccount({ 
        fbId : profile.id , 
        name : profile.displayName 
       }).save(function(err,newUser){ 
        if(err) throw err; 
        console.log(newUser); 
        done(null, newUser); 
       }); 
      } 
     }); 
     } 
    )); 

ответ

1

Попробуйте

var localStorage = require('localStorage') 

localStorage.setItem('accessToken', accessToken); 
FBAccount.findOne({ .... 
+0

Привет, спасибо за решение. Я добавил локальное хранилище и разместил ваш предлагаемый код. Но, когда я просматриваю локальное хранилище, его там не было. Тем не менее, я смог консольно зарегистрировать мой доступ. – gentlyawesome

+1

Вы проверили использование 'localStorage.getItem ('accessToken')'? Он будет сохранен на сервере Node, а не в браузере. Но для обработки сеанса вы должны использовать ** Redis ** – Trung

+0

Я вижу, да, я смог увидеть его сейчас. Благодарю. Я мог бы просить много, но как установить это в localstorage в браузере? – gentlyawesome

0

Вы также можете добавить маркер в куки-то промежуточного слоя, как

passport.use(new FacebookStrategy({ 
    clientID: '566950043453498', 
    clientSecret: '555022a61da40afc8ead59c6c26306ed', 
    callbackURL: 'http://www.localhost:3000/auth/facebook/callback' 
}, function(accessToken, refreshToken, profile, done) { 
    console.log("hello " + profile.displayName); 
    done(null); 
} 
)); 

//Authentication 
app.get('/auth/facebook', passport.authenticate('facebook')); 

router.get('/auth/facebook/callback', passport.authenticate('facebook', { 
    failureRedirect: '/login?failedSocial=facebook' 
    }), auth.authCallback); 

и Идент службы

exports.authCallback = function (req, res) { 
    res.res.cookie('token', JSON.stringify(req.user.token)); 
    res.redirect('/'); 
} 
+0

Правильно, но вместо req.user.token должен быть req.query.code – vdisawar

Смежные вопросы