Advertisement
Guest User

Untitled

a guest
Dec 29th, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.39 KB | None | 0 0
  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. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement