Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. var express = require("express");
  2. var mysql = require("mysql");
  3. var bodyParser = require("body-parser");
  4. var jwt = require("jsonwebtoken");
  5. var app = express();
  6. app.use(bodyParser.json()); // for å tolke JSON i body
  7.  
  8. // Burde vært ekte sertifikat, lest fra config...
  9. let privateKey = (publicKey = "shhhhhverysecret");
  10.  
  11. function loginOk(username, password) {
  12. return password === "secret";
  13. }
  14.  
  15. // Server klientapplikasjonen (i public-mappa) på rot-url'en http://localhost:8080
  16. app.use(express.static("public"));
  17.  
  18. // Håndterer login og sender JWT-token tilbake som JSON
  19. app.post("/login", (req, res) => {
  20. if (loginOk(req.body.brukernavn, req.body.passord)) {
  21. console.log("Brukernavn & passord ok");
  22. let token = jwt.sign({brukernavn: req.body.brukernavn}, privateKey, {
  23. expiresIn: 60
  24. });
  25. res.json({jwt: token});
  26. } else {
  27. console.log("Brukernavn & passord IKKE ok");
  28. res.status(401);
  29. res.json({error: "Not authorized"});
  30. }
  31. });
  32.  
  33. // Plasserer denne MÌDDLEWARE-funksjonen
  34. // foran alle endepunktene under samme path
  35. app.use("/api", (req, res, next) => {
  36. var token = req.headers["x-access-token"];
  37. jwt.verify(token, publicKey, (err, decoded) => {
  38. if (err) {
  39. console.log("Token IKKE ok");
  40. res.status(401);
  41. res.json({error: "Not authorized"});
  42. } else {
  43. console.log("Token ok: " + decoded.brukernavn);
  44. next();
  45. }
  46. });
  47. });
  48.  
  49. app.get("/api/person", (req, res) => {
  50. console.log("Skal returnere en liste med personer");
  51. res.json([{name: "Hei Sveisen"}]);
  52. });
  53.  
  54. app.get("/api/person/:personId", (req, res) => {
  55. console.log("Skal returnere personen med id " + req.params.personId);
  56. res.json({name: "Hei Sveisen"});
  57. });
  58.  
  59. app.post("/api/person", (req, res) => {
  60. console.log("Skal legge til en ny person i DB");
  61. res.send("");
  62. });
  63.  
  64. app.get("/token", (req, res) => {
  65. var token = req.headers["x-access-token"];
  66. jwt.verify(token, publicKey, (err, decoded) => {
  67. if(err){
  68. console.log("Token IKKE ok");
  69. res.status(401);
  70. res.json({error: "Not authorized"});
  71. }else{
  72. let token = jwt.sign({brukernavn: decoded.brukernavn}, privateKey, {
  73. expiresIn: 60
  74. });
  75. res.json({jwt: token});
  76. }
  77. })
  78. });
  79.  
  80. var server = app.listen(8080);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement