Guest User

Untitled

a guest
Oct 20th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. const express = require('express')
  2. const bodyParser = require('body-parser')
  3. const jwt = require('jsonwebtoken')
  4. const mongoose = require('mongoose')
  5. const User = require('./models/user')
  6.  
  7. mongoose.Promise = global.Promise
  8. mongoose.connect('mongodb://localhost/mock_server', { useMongoClient: true });
  9.  
  10. const app = express()
  11.  
  12. app.set('port', 8080)
  13. app.set('secret', 'oh1234354epoiuhunaslkjfnaslkfjnlaskjdfn')
  14.  
  15. app.get('/', (req, res) => {
  16. res.send('it works')
  17. })
  18.  
  19. const api = express.Router()
  20. api.post('/login', (req, res) => {
  21. User.findOne({email: req.body.email}, (err, user) => {
  22. if (err)
  23. throw err
  24. if (!user)
  25. return res.status(403).send({success: false, message: 'user not found'})
  26. const payload = {admin: user.admin, _id: user._id}
  27. const token = jwt.sign(payload, app.get('secret'), {expiresIn: '1 day'})
  28. return res.json({success: true, token: token})
  29. })
  30. })
  31. api.post('/users', (req, res) => {
  32. const user = new User({email: req.body.email, password: req.body.password, admin: false})
  33. user.save(err => {
  34. if (err)
  35. throw err
  36. res.json({success: true})
  37. })
  38. })
  39. api.use((req, res, next) => {
  40. const token = req.body.token || req.query.token || req.headers['x-access-token']
  41. if (token) {
  42. jwt.verify(token, app.get('secret'), (err, decoded) => {
  43. if (err) {
  44. return res.status(403).send({success: false, message: 'invalid token'})
  45. }
  46. req.decoded = decoded
  47. next()
  48. })
  49. } else {
  50. return res.status(403).send({success: false, message: 'missing token'})
  51. }
  52. })
  53. api.get('/users', (req, res) => {
  54. User.find({}, (err, users) => {
  55. res.json(users);
  56. })
  57. })
  58.  
  59. app.use(bodyParser.urlencoded({extended: false}))
  60. app.use(bodyParser.json())
  61. app.use(require('morgan')('dev'))
  62. app.use('/api', api)
  63.  
  64. app.listen(app.get('port'))
  65. console.log('listening...')
Add Comment
Please, Sign In to add comment