Advertisement
Guest User

Untitled

a guest
Aug 28th, 2015
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.72 KB | None | 0 0
  1. module.exports = {
  2. 'signup': function (req, res) {
  3.  
  4. sails.i18n = require('sails/node_modules/i18n');
  5. sails.express = require('express');
  6. sails.url = require('url');
  7. sails.path = require('path');
  8. sails.request = require('request');
  9. sails.bodyParser = require('body-parser');
  10. var app = sails.express();
  11. app.use(sails.bodyParser.urlencoded({extended: false}));
  12. var url = require('url');
  13. var url_parts = url.parse(req.url, true);
  14. var query = url_parts.query;
  15. var lang = query['lang'];
  16. if(lang == undefined){
  17. lang = sails.config.i18n.defaultLocale;
  18. }
  19. sails.i18n.init(req, res);
  20. sails.i18n.defaultLocale = sails.config.i18n.defaultLocale;
  21.  
  22.  
  23. req.locale = lang;
  24. var langPr
  25. if(lang == sails.i18n.defaultLocale){
  26. langPr = "";
  27. } else {
  28. langPr = "?lang=" + lang;
  29. }
  30. res.view({
  31. language_choice : lang, langParams: langPr, currentParams: ""
  32. });
  33.  
  34.  
  35. },
  36.  
  37.  
  38. 'mobileCreate': function (req, res) {
  39. var params = req.params.all();
  40.  
  41. var user = {
  42. fullname: params.fullname,
  43. address: params.address,
  44. phone: params.phone,
  45. city: params.city,
  46. state: params.state,
  47. country: params.country,
  48. email: params.email,
  49. password: params.password,
  50. confirmation: params.confirmation
  51. }
  52.  
  53. UserManager.createUser(user, function (err, user) {
  54. if (err) {
  55. if (err.err && err.err.message) {
  56. res.json({
  57. status_code: 0,
  58. status_message: err.err.message
  59. })
  60. }
  61. else {
  62. res.json({
  63. status_message: "Internal server error!",
  64. status_code: 0,
  65. err: err
  66. })
  67. }
  68. return;
  69. }
  70.  
  71. if (user) {
  72. res.json({
  73. status_code: 1,
  74. status_message: "Registration successful.",
  75. token: UserManager.generateAuthToken(user)
  76. });
  77. }
  78. else {
  79. res.json(err);
  80. }
  81. });
  82. },
  83.  
  84. var jwt = require('jsonwebtoken')
  85. var bcrypt = require('bcrypt');
  86.  
  87. var jwtSecret = "werisdkfrwerf";
  88. var ISSUER = "automator.com";
  89. var EXPIRY_TIME = 120*500;
  90.  
  91. function genToken(user) {
  92. var token = jwt.sign({id: user.id}, jwtSecret, {issuer: ISSUER, expiresInMinutes: EXPIRY_TIME});
  93. return token;
  94. }
  95.  
  96. module.exports = {
  97. hashPassword: function (plainTxtPassword, salt, next) {
  98. salt = salt || bcrypt.genSaltSync(6);
  99. bcrypt.hash(plainTxtPassword, salt, function (err, hash) {
  100. if (err) {
  101. return next({err: {message: "Something went wrong. Please try again later."}});
  102. }
  103. next(null, hash, salt);
  104. })
  105. },
  106.  
  107. createUser: function (newUser, next) {
  108. User.findOneByEmail(newUser.email, function (err, user) {
  109. if (err) {
  110. return next({err: {message: "Failed to create user. Please try again later."}});
  111. }
  112.  
  113. if (user) {
  114. return next({err: {message: "Email already registered. Please try a different email address."}})
  115. }
  116.  
  117. User.create(newUser, function (err, user) {
  118. if (err) {
  119. return next({err: err});
  120. }
  121.  
  122. next(null, user);
  123. })
  124. })
  125. },
  126.  
  127. generateAuthToken: function (user) {
  128. return genToken(user);
  129. },
  130.  
  131. generateAuthTokenFromPassword: function (username, password, next) {
  132. User.findOne({email: username}, function (err, user) {
  133. if (err) {
  134. return next({err: {message: "Something went wrong, please try again later."}});
  135. }
  136.  
  137. if (!user) {
  138. return next({err: {message: "Invalid email address and/or password. Please enter valid login credentials and try again."}})
  139. }
  140.  
  141. bcrypt.compare(password, user.encrypted_password, function (err, valid) {
  142. if (err) {
  143. return next({err: {message: "Something went wrong, please try again later."}});
  144. }
  145. if (!valid) {
  146. return next({err: {message: "Invalid email address and/or password. Please try again with valid login credentials."}});
  147. }
  148. else {
  149. next(null, user, genToken(user));
  150. }
  151. })
  152. })
  153. },
  154.  
  155. getUserFromAuthToken: function (token, next) {
  156. jwt.verify(token, jwtSecret, {issuer: ISSUER}, function (err, user) {
  157. if (err) {
  158. return next(err);
  159. }
  160.  
  161. User.findOne({id: user.id}, function (err, userData) {
  162. if (err) next(err);
  163. return next(null, userData);
  164. })
  165. })
  166. }
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement