passport.deserializeUser((user, done) => { done(null, { provider: user.provider, id: user.provider_id }); });
// Setup use serialization passport.serializeUser((user, done) => { done(null, typeof user === 'string' ? user : JSON.stringify(user)); });
// NOTE(@mxstbr): `data` used to be just the userID, but is now the full user data // to avoid having to go to the db on every single request. We have to handle both // cases here, as more and more users use Spectrum again we go to the db less and less passport.deserializeUser((data, done) => { // Fast path: we got the full user data in the cookie if (isSerializedJSON(data)) { let user; // Ignore errors if our isSerializedJSON heuristic is wrong and `data` isn't serialized JSON try { user = JSON.parse(data); } catch (err) {} if (user && user.id && user.createdAt) { return done(null, user); } } // Slow path: data is just the userID (legacy), so we have to go to the db to get the full data return getUserById(data) .then(user => { done(null, user); }) .catch(err => { done(err); }); });
passport.serializeUser((user, done) => { db.get(queries.find_user, [user.provider, user.id], (err, row) => { if (err) return console.error('could not find user', err); if (row) return done(null, row); // welcome back // nice to meet you, new user! // check if id shows up in auto-trust config var trusted = trustConfig && trustConfig[user.provider] && trustConfig[user.provider].indexOf(user.id) > -1 ? 1 : 0; const c_args = [ user.provider, user.id, user.displayName, user.username || user.displayName, user.profileUrl || '', trusted ]; db.run(queries.create_user, c_args, (err, res) => { if (err) return console.error('could not create user', err); db.get(queries.find_user, [user.provider, user.id], (err, row) => { if (err) return console.error('could not find user', err); if (row) return done(null, row); console.error('no user found after insert'); }); }); }); });
done(null, user.id); }); done(err, user); }); }); function(username, password, done) { User.findOne({ username: new RegExp(username, 'i'), socialId: null }, function(err, user) { if (err) { return done(err); } return done(null, false, { message: 'Incorrect username or password.' }); if (err) { return done(err); } if (!isMatch){ return done(null, false, { message: 'Incorrect username or password.' }); return done(null, user); }); if (err) { return done(err); } return done(err, user); }); };
passport.deserializeUser(function(id, done) { done(null, JSON.parse(id)); });
passport.serializeUser((user, done) => { done(null, user); });
passport.deserializeUser((user, done) => { done(null, user); });
passport.serializeUser(function(user, done) { done(null, JSON.stringify(user)); });