Advertisement
Guest User

Untitled

a guest
Aug 21st, 2017
476
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. //Node js libraries
  2. const express = require('express');
  3. const router = express.Router();
  4. const app = express();
  5. const jwt = require('jsonwebtoken');
  6.  
  7. //Static files
  8. const Users = require('../models/users');
  9.  
  10. app.set('superSecret', 'thisissecretkeyforapi');
  11.  
  12. //Routes here
  13. router.post('/', function(req, res){
  14. if(req.body.username == '' || req.body.password == '') {
  15. res.send('Fields must be required');
  16. }
  17. else {
  18. Users
  19. .findOne({
  20. username: req.body.username
  21. },
  22. function(err, user){
  23. if(!user){
  24. res.send('No user found');
  25. }
  26. else {
  27. if(user.password != req.body.password) {
  28. res.send('Wrong password');
  29. }
  30. else {
  31. var token = jwt.sign(user, app.get('superSecret'), {
  32. expiresIn: 60*15
  33. });
  34. res.send({
  35. message: "Token here",
  36. token: token
  37. })
  38. }
  39. }
  40. });
  41. }
  42. })
  43.  
  44. router.get('/profile', function(req, res){
  45. console.log(req.decoded);
  46. res.send('profile here');
  47. });
  48.  
  49. module.exports = router;
  50.  
  51. var express = require('express');
  52. var app = express();
  53. var bodyParser = require('body-parser');
  54. var morgan = require('morgan');
  55. var mongoose = require('mongoose');
  56.  
  57. mongoose.Promise = global.Promise;
  58. mongoose.connect('mongodb://cordy:lolla123@ds042459.mlab.com:42459/musiclk', {
  59. useMongoClient: true
  60. });
  61.  
  62. app.set("view engine", "ejs");
  63. app.set('superSecret', 'thisissecretkeyforapi');
  64.  
  65. app.use(morgan('dev'));
  66.  
  67. app.use(bodyParser.urlencoded({
  68. extended: true
  69. }));
  70. app.use(bodyParser.json());
  71.  
  72. require('./controllers/index')(app);
  73.  
  74. app.set('superSecret', 'thisissecretkeyforapi');
  75.  
  76. admin_routes = require('./controllers/admin_routes');
  77.  
  78. admin_routes.use(function(req, res, next) {
  79. // check header or url parameters or post parameters for token
  80. var token = req.body.token || req.query.token || req.headers['x-access-token'];
  81. // decode token
  82. if (token) {
  83. // verifies secret and checks exp
  84. jwt.verify(token, app.get('superSecret'), function(err, decoded) {
  85. if (err) {
  86. return res.json({
  87. success: false,
  88. message: 'Failed to authenticate token. The token is expired' });
  89. }
  90. else {
  91. // if everything is good, save to request for use in other routes
  92. req.decoded = decoded;
  93. next();
  94. }
  95. });
  96. } else {
  97. // if there is no to
  98. // return an error
  99. return res.status(403).send({
  100. success: false,
  101. message: 'No token provided.'
  102. });
  103. }
  104. });
  105.  
  106. app.use('/admin', admin_routes);
  107.  
  108. app.listen(process.env.PORT || 1337, function(){
  109. console.log("Now listening for the requests");
  110. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement