Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.57 KB | None | 0 0
  1. var express = require('express');
  2. var app = express();
  3. var bodyParser = require('body-parser');
  4. var morgan = require('morgan');
  5. var cors=require('cors');
  6. var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
  7. var config = require('../../config'); // get our config file
  8. var User = require('../../app/models/User'); // get our mongoose model
  9.  
  10. var port = process.env.PORT || 1991; // used to create, sign, and verify tokens
  11. mongoose.connect(config.database, { useMongoClient: true }); // connect to database
  12. app.set('superSecret', config.secret); // secret variable
  13.  
  14. app.use(bodyParser.urlencoded({ extended: true }));
  15. app.use(bodyParser.json());
  16.  
  17. app.use(morgan('dev'));
  18. app.use(cors());
  19.  
  20.  
  21.  
  22. module.exports = {
  23.  
  24. isAthenticated: function (req, res, next){
  25. var token = req.body.token || req.query.token || req.headers['x-access-token'];
  26.  
  27.  
  28. if (token) {
  29. // verifies secret and checks exp
  30. jwt.verify(token, app.get('superSecret'), function(err, decoded) {
  31. console.log([err,decoded]);
  32. if (err) { //failed verification.
  33. return res.json({"error": true, success:false, message:'Faild to authenticate token'});
  34. }
  35. req.decoded = decoded;
  36. next(); //no error, proceed
  37. });
  38. } else {
  39. // forbidden without token
  40. return res.status(403).send({
  41. success: false,
  42. message: 'No token provided.'
  43. });
  44. }
  45. }
  46. }
  47.  
  48. var express=require('express');
  49. var router=express.Router();
  50. var passport= require('passport');
  51. var jwt=require('jsonwebtoken');
  52.  
  53. var userRoutes = express.Router();
  54. var config = require('../../config'); // get our config file
  55. var User = require('../../app/models/User'); // get our mongoose model
  56. var middlewares = require('../../app/middleware/middlewares');
  57.  
  58. //
  59. // ─── ROUTE TO REGISTER USER ──────────────────────────────────────────────────────────────────────
  60. //
  61. userRoutes.post('/signup',function(req, res,next) {
  62. if (!req.body.email || !req.body.password || !req.body.firstname || !req.body.lastname || !req.body.gender || !req.body.isTrainer) {
  63. res.json({ success: false, msg: 'set up required fields' });
  64. } else {
  65. var newUser = new User({
  66. email: req.body.email,
  67. password: req.body.password,
  68. firstname: req.body.firstname,
  69. lastname: req.body.lastname,
  70. gender: req.body.gender,
  71. isTrainer: req.body.isTraine
  72. });
  73. User.find({ email: req.body.email}, function(err, user){
  74. if (err) {
  75. res.send({ success: false, msg:'authentication error'})
  76. }
  77. else if (user.length != 0) {
  78. res.send({success: false, msg:'Email already exists'})
  79. console.log(user);
  80. }else {
  81. // save the user
  82. newUser.save(function(err) {
  83. if (err) {
  84. console.log(err);
  85. }else {
  86. res.send({ success: true, msg: 'Your account created successfully! ' });
  87. }
  88.  
  89. });
  90. }
  91. })
  92.  
  93. }
  94. });
  95.  
  96. userRoutes.post('/signin', function(req, res, next) {
  97. User.findOne({
  98. email: req.body.email
  99. }, function(err, user) {
  100. if (err) throw err;
  101.  
  102. if (!user) {
  103. res.send({ success: false, msg: 'Check your email' });
  104. } else {
  105. // check if password matches
  106. user.comparePassword(req.body.password, function(err, isMatch) {
  107. if (isMatch && !err) {
  108. // if user is found and password is right create a token
  109. var token = jwt.sign(user, config.secret);
  110.  
  111. // return the information including token as JSON
  112. res.json({
  113. success: true,
  114. token: token,
  115. username: user.username
  116. });
  117. } else {
  118. res.send({ success: false, msg: 'Check your password!' });
  119. }
  120. });
  121. }
  122. });
  123. });
  124.  
  125. userRoutes.get('/logout', middlewares.isAuthenticated,function(req,res,next){
  126. return res.json({message: 'Success to logout', success: true});
  127. });
  128.  
  129. userRoutes.get('/users',middlewares.isAuthenticated, function(req, res,next) {
  130. User.find({}, function(err, users) {
  131. res.json(users);
  132. });
  133. });
  134. module.exports= userRoutes;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement