node.js - Does compoundjs-passport always expects user to be saved to the database after authentication? -


i developing simple user crud module using compoundjs, compound-passport , passport-facebook. used default approach generate crud , works fine if want save database want save session here , save user @ later stage problem not request or session in model.

here user.js model

module.exports = function (compound, user) {   // define user here   user.findorcreate = function (data, done) {         console.log(data.profile.emails[0].value);         /* facebook openid */         if (data.profile.provider == "facebook") {             user.all({                 where: {                     email_id: data.profile.emails[0].value                 }, limit: 1             }, function (err, user) {                 if(data.profile.gender != '' && data.profile.gender != undefined)                     var givengender = (data.profile.gender == 'male')?'m':'f'                 else                     var givengender = '';                 if (user[0]) return done(err, user[0]);                 var userdet = {                     firstname: data.profile.name.givenname,                     lastname: data.profile.name.familyname,                     email_id: data.profile.emails[0].value,                     gender:givengender,                     dob: new date(data.profile._json.birthday),                     registered_from:"facebook",                     created_at:new date(),                     updated_at:new date()                 };                 req.session.userdet = userdet;//this not work                 done();                  //req.session.userdet = userdet;                 // user.create({                 //     displayname: data.profile.displayname,                 //     email: data.profile.emails[0].value,                 //     facebookid: data.openid,                 //     provider:"facebook",                 //     createdate:new date(),                 //     lastlogin:new date()                 // }, done);             });         } else          /* not known yet */         {             console.log("dont how handle user.")             console.log(data.profile);         }     }; }; 

the req.session.userdet = userdet; above not work don't have request object in model.

here facebook.js implements facebook strategy

var passport = require('passport');  exports.callback = function(token, tokensecret, profile, done) {     exports.user.findorcreate({         facebookid: profile.id,         profile: profile     }, function (err, user) {         return done(err, user);     }); };  exports.init = function (conf, app) {     var strategy = require('passport-facebook').strategy;     passport.use(new strategy({         clientid: conf.facebook.apikey,         clientsecret: conf.facebook.secret,         callbackurl: conf.baseurl + 'users/signupnew'     }, exports.callback));      passport.serializeuser(function(user, done) {         console.log("i here");         console.log(user);       done(null, user);     });      passport.deserializeuser(function(id, done) {       exports.user.findbyid(id, function(err, user) {         done(err, user);       });     });     // app.get('/auth/facebook',     //     passport.authenticate('facebook', { scope: [ 'email,user_likes,user_birthday' ] }));      // app.get('/auth/facebook/callback',     //     passport.authenticate('facebook', {     //         failureredirect: conf.failureredirect || '/'     //     }), exports.redirectonsuccess);      app.get('/users/signupnew',passport.authenticate('facebook', {             failureredirect: conf.failureredirect || '/'         }),function(req,res){         req.session.redirect = '/users/signup';         exports.redirectonsuccess(req,res);     });   }; 

basically want implement multi step sign have collect data in session , register user. apologise if understanding flow faulty new user node , compound.


Comments

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -