Guest User

Untitled

a guest
Aug 22nd, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. const express = require('express');
  2. const bodyParser = require('body-parser');
  3. let jwt = require('jsonwebtoken');
  4. let config = require('./config');
  5. let middleware = require('./middleware');
  6.  
  7. class HandlerGenerator {
  8. login (req, res) {
  9. let username = req.body.username;
  10. let password = req.body.password;
  11. // For the given username fetch user from DB
  12. let mockedUsername = 'admin';
  13. let mockedPassword = 'password';
  14.  
  15. if (username && password) {
  16. if (username === mockedUsername && password === mockedPassword) {
  17. let token = jwt.sign({username: username},
  18. config.secret,
  19. { expiresIn: '24h' // expires in 24 hours
  20. }
  21. );
  22. // return the JWT token for the future API calls
  23. res.json({
  24. success: true,
  25. message: 'Authentication successful!',
  26. token: token
  27. });
  28. } else {
  29. res.send(403).json({
  30. success: false,
  31. message: 'Incorrect username or password'
  32. });
  33. }
  34. } else {
  35. res.send(400).json({
  36. success: false,
  37. message: 'Authentication failed! Please check the request'
  38. });
  39. }
  40. }
  41. index (req, res) {
  42. res.json({
  43. success: true,
  44. message: 'Index page'
  45. });
  46. }
  47. }
  48.  
  49. // Starting point of the server
  50. function main () {
  51. let app = express(); // Export app for other routes to use
  52. let handlers = new HandlerGenerator();
  53. const port = process.env.PORT || 8000;
  54. app.use(bodyParser.urlencoded({ // Middleware
  55. extended: true
  56. }));
  57. app.use(bodyParser.json());
  58. // Routes & Handlers
  59. app.post('/login', handlers.login);
  60. app.get('/', middleware.checkToken, handlers.index);
  61. app.listen(port, () => console.log(`Server is listening on port: ${port}`));
  62. }
  63.  
  64. main();
Add Comment
Please, Sign In to add comment