Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- var mongoose = require("mongoose");
- var UserModel = new mongoose.Schema({
- local:{
- ID:{type:String , required:false},
- FullName:{type:String , required:false},
- Password:{type:String, required:false},
- Gender: {type:String, required:false},
- Country: {type:String, required:false},
- City: {type:String, required:false},
- Number: {type:String, required:false},
- AreaCode: {type:String, required:false},
- Passport: {type:String, required:false},
- Billing1: {type:String, required:false},
- Billing2: {type:String, required:false},
- State: {type:String, required:false},
- Postcode: {type:String, required:false},
- Email: {type:String, required:false},
- CashPoint:{type:String , required:false},
- CurrentOrder:[{}],
- LastOrders: [{}],
- FavoriteTrips:[{}]
- },
- facebook:
- {
- ID:{type:String , required:false},
- Token:{type:String, required:false},
- },
- google:
- {
- ID:{type:String , required:false},
- Token:{type:String, required:false},
- }
- });
- mongoose.model("Users", UserModel);
- /*
- Facebook authentication
- */
- app.get('/auth/facebook',
- passport.authenticate('facebook', { scope: ['email']}));
- app.get('/auth/facebook/callback',
- passport.authenticate('facebook', { failureRedirect: '/' }),
- function(req, res) {
- res.redirect('/account');
- });
- passport.use(new FacebookStrategy({
- clientID: configAuth.facebookAuth.clientID,
- clientSecret: configAuth.facebookAuth.clientSecret,
- callbackURL: configAuth.facebookAuth.clientURL,
- profileFields: ['id', 'displayName', 'gender','emails']
- },
- function(accessToken, refreshToken, profile, cb, done) {
- process.nextTick(function ()
- {
- User.findOne({'facebook.ID': profile.id}, function (err , user)
- {
- if(err)
- {
- return done(err);
- }
- if(user)
- {
- done(null, user);
- }
- else
- {
- var cUser = new User();
- cUser.facebook.ID = profile.id;
- cUser.facebook.Token = accessToken;
- cUser.local.FullName = profile.displayName;
- cUser.local.Password = "";
- cUser.local.Gender = profile.gender;
- cUser.local.Country = "";
- cUser.local.City = "";
- cUser.local.Email = "";
- cUser.local.CashPoint = "";
- cUser.local.Passport = "";
- cUser.local.Number = "";
- cUser.local.AreaCode = "";
- cUser.local.Billing1 = "";
- cUser.local.Billing2 = "";
- cUser.local.State = "";
- cUser.local.Postcode = "";
- cUser.save(function(err)
- {
- if(err)
- {
- console.log(err);
- }
- done(null, user);
- });
- }
- });
- });
- }
- ));
- /* Google authentication */
- app.get('/auth/google',
- passport.authenticate('google', { scope: ['profile' , 'email']}));
- app.get('/auth/google/callback',
- passport.authenticate('google', { failureRedirect: '/' }),
- function(req, res) {
- res.redirect('/account');
- });
- passport.use(new GoogleStrategy({
- clientID: configAuth.googleAuth.clientID,
- clientSecret: configAuth.googleAuth.clientSecret,
- callbackURL: configAuth.googleAuth.clientURL,
- profileFields:["id" , "displayName" , "gender" , "emails"]
- },
- function(accessToken, refreshToken, profile, cb, done) {
- process.nextTick(function ()
- {
- User.findOne({'google.ID': profile.id}, function (err , user)
- {
- if(err)
- {
- return done(err);
- }
- if(user)
- {
- done(null, user);
- }
- else
- {
- var cUser = new User();
- cUser.google.ID = profile.id;
- cUser.google.Token = accessToken;
- cUser.local.FullName = profile.displayName;
- cUser.local.Password = "";
- cUser.local.Gender = profile.gender;
- cUser.local.Country = "";
- cUser.local.City = "";
- cUser.local.Email = "";
- cUser.local.CashPoint = "";
- cUser.local.Passport = "";
- cUser.local.Number = "";
- cUser.local.AreaCode = "";
- cUser.local.Billing1 = "";
- cUser.local.Billing2 = "";
- cUser.local.State = "";
- cUser.local.Postcode = "";
- cUser.save(function(err)
- {
- if(err)
- {
- console.log(err);
- }
- done(null, user);
- });
- }
- });
- });
- }
- ));
- /* Serilize user*/
- passport.serializeUser(function(sessionUser, done) {
- sessionUser = {_id:sessionUser._id, State: "Logged In" , Name:sessionUser.local.FullName};
- session = sessionUser;
- done(null, sessionUser);
- });
- passport.deserializeUser(function(sessionUser, done) {
- done(null, sessionUser);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement