Advertisement
Guest User

Untitled

a guest
Sep 6th, 2017
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. const express = require('express');
  2. const queryString = require('query-string');
  3.  
  4. const app = express();
  5.  
  6. const USERS = [
  7. {
  8. id: 1,
  9. firstName: 'Joe',
  10. lastName: 'Schmoe',
  11. userName: 'joeschmoe@business.com',
  12. position: 'Sr. Engineer',
  13. isAdmin: true,
  14. // NEVER EVER EVER store passwords in plain text in real life. NEVER!!!!!!!!!!!
  15. password: 'password'
  16. },
  17. {
  18. id: 2,
  19. firstName: 'Sally',
  20. lastName: 'Student',
  21. userName: 'sallystudent@business.com',
  22. position: 'Jr. Engineer',
  23. isAdmin: true,
  24. // NEVER EVER EVER store passwords in plain text in real life. NEVER!!!!!!!!!!!
  25. password: 'password'
  26. },
  27. // ...other users
  28. ];
  29.  
  30. function gateKeeper(req, res, next) {
  31. //extract x-username-password out of header
  32.  
  33. let {user, pass} = queryString.parse(req.header("x-username-password"));
  34. //req.header - method
  35. //req.headers - obj
  36. req.user = USERS.find(item => item.userName === user && item.password===pass);
  37.  
  38. next();
  39. }
  40. app.use(gateKeeper);
  41.  
  42. app.get("/api/users/me", (req, res) => {
  43.  
  44. // res.send(req.headers);
  45. if (req.user === undefined) {
  46. return res.status(403).json({ message: 'Must supply valid user credentials' });
  47. }
  48. const { firstName, lastName, id, userName, position } = req.user;
  49. return res.json({ firstName, lastName, id, userName, position });
  50. });
  51.  
  52. app.listen(process.env.PORT || 8080, () => console.log(
  53. `Your app is listening on port ${process.env.PORT || 8080}`));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement