daily pastebin goal
8%
SHARE
TWEET

Untitled

a guest Dec 29th, 2016 93 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use strict";
  2.  
  3. var mongoose = require("mongoose");
  4.  
  5. var UserModel = new mongoose.Schema({
  6.     local:{
  7.         ID:{type:String , required:false},
  8.         FullName:{type:String , required:false},
  9.         Password:{type:String, required:false},
  10.         Gender: {type:String, required:false},
  11.         Country: {type:String, required:false},
  12.         City: {type:String, required:false},
  13.         Number: {type:String, required:false},
  14.         AreaCode: {type:String, required:false},
  15.         Passport: {type:String, required:false},
  16.         Billing1: {type:String, required:false},
  17.         Billing2: {type:String, required:false},
  18.         State: {type:String, required:false},
  19.         Postcode: {type:String, required:false},
  20.         Email: {type:String, required:false},
  21.         CashPoint:{type:String , required:false},
  22.         CurrentOrder:[{}],
  23.         LastOrders: [{}],
  24.         FavoriteTrips:[{}]
  25.     },
  26.    facebook:
  27.    {
  28.         ID:{type:String , required:false},
  29.         Token:{type:String, required:false},
  30.    },
  31.    google:
  32.    {
  33.         ID:{type:String , required:false},
  34.         Token:{type:String, required:false},
  35.    }
  36. });
  37.  
  38. mongoose.model("Users", UserModel);
  39.  
  40.  
  41. /*
  42. Facebook authentication
  43. */
  44.  
  45. app.get('/auth/facebook',
  46.   passport.authenticate('facebook', { scope: ['email']}));
  47.  
  48. app.get('/auth/facebook/callback',
  49.   passport.authenticate('facebook', { failureRedirect: '/' }),
  50.   function(req, res) {
  51.     res.redirect('/account');
  52.   });
  53.  
  54.  
  55.  
  56. passport.use(new FacebookStrategy({
  57.     clientID: configAuth.facebookAuth.clientID,
  58.     clientSecret: configAuth.facebookAuth.clientSecret,
  59.     callbackURL: configAuth.facebookAuth.clientURL,
  60.     profileFields: ['id', 'displayName', 'gender','emails']
  61.   },
  62.   function(accessToken, refreshToken, profile, cb, done) {
  63.       process.nextTick(function ()
  64.       {
  65.           User.findOne({'facebook.ID': profile.id}, function (err , user)
  66.           {
  67.               if(err)
  68.               {
  69.                 return done(err);
  70.               }
  71.  
  72.               if(user)
  73.               {
  74.                 done(null, user);
  75.               }
  76.               else
  77.               {
  78.                   var cUser = new User();
  79.                   cUser.facebook.ID = profile.id;
  80.                   cUser.facebook.Token = accessToken;
  81.                   cUser.local.FullName = profile.displayName;
  82.                   cUser.local.Password = "";
  83.                   cUser.local.Gender = profile.gender;
  84.                   cUser.local.Country = "";
  85.                   cUser.local.City = "";
  86.                   cUser.local.Email = "";
  87.                   cUser.local.CashPoint = "";
  88.                   cUser.local.Passport = "";
  89.                   cUser.local.Number = "";
  90.                   cUser.local.AreaCode = "";
  91.                   cUser.local.Billing1 = "";
  92.                   cUser.local.Billing2 = "";
  93.                   cUser.local.State = "";
  94.                   cUser.local.Postcode = "";
  95.  
  96.                   cUser.save(function(err)
  97.                   {
  98.                       if(err)
  99.                       {
  100.                          console.log(err);
  101.                       }
  102.                        done(null, user);
  103.  
  104.                   });
  105.               }
  106.  
  107.           });
  108.       });
  109.   }
  110. ));
  111.  
  112. /* Google authentication */
  113.  
  114. app.get('/auth/google',
  115.   passport.authenticate('google', { scope: ['profile' , 'email']}));
  116.  
  117. app.get('/auth/google/callback',
  118.   passport.authenticate('google', { failureRedirect: '/' }),
  119.   function(req, res) {
  120.     res.redirect('/account');
  121.   });
  122.  
  123. passport.use(new GoogleStrategy({
  124.     clientID: configAuth.googleAuth.clientID,
  125.     clientSecret: configAuth.googleAuth.clientSecret,
  126.     callbackURL: configAuth.googleAuth.clientURL,
  127.     profileFields:["id" , "displayName" , "gender" , "emails"]
  128.   },
  129.   function(accessToken, refreshToken, profile, cb, done) {
  130.       process.nextTick(function ()
  131.       {
  132.           User.findOne({'google.ID': profile.id}, function (err , user)
  133.           {
  134.               if(err)
  135.               {
  136.                 return done(err);
  137.               }
  138.  
  139.               if(user)
  140.               {
  141.                 done(null, user);
  142.               }
  143.               else
  144.               {
  145.                   var cUser = new User();
  146.                   cUser.google.ID = profile.id;
  147.                   cUser.google.Token = accessToken;
  148.                   cUser.local.FullName = profile.displayName;
  149.                   cUser.local.Password = "";
  150.                   cUser.local.Gender = profile.gender;
  151.                   cUser.local.Country = "";
  152.                   cUser.local.City = "";
  153.                   cUser.local.Email = "";
  154.                   cUser.local.CashPoint = "";
  155.                   cUser.local.Passport = "";
  156.                   cUser.local.Number = "";
  157.                   cUser.local.AreaCode = "";
  158.                   cUser.local.Billing1 = "";
  159.                   cUser.local.Billing2 = "";
  160.                   cUser.local.State = "";
  161.                   cUser.local.Postcode = "";  
  162.  
  163.                   cUser.save(function(err)
  164.                   {
  165.                       if(err)
  166.                       {
  167.                          console.log(err);
  168.                       }
  169.                       done(null, user);
  170.                   });
  171.               }
  172.  
  173.           });
  174.       });
  175.   }
  176. ));
  177.  
  178. /* Serilize user*/
  179. passport.serializeUser(function(sessionUser, done) {
  180.   sessionUser = {_id:sessionUser._id, State: "Logged In" , Name:sessionUser.local.FullName};
  181.   session = sessionUser;
  182.   done(null, sessionUser);
  183. });
  184.  
  185. passport.deserializeUser(function(sessionUser, done) {
  186.   done(null, sessionUser);
  187. });
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top