Facebook
From Buff Kangaroo, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 153
  1. const express = require("express");
  2. const router = express.Router();
  3. const jwt = require("jsonwebtoken");
  4.  
  5. const posts = require("./posts");
  6. const auth = require("./auth");
  7. const accounts = require("./accounts");
  8. const files = require("./files");
  9. const stats = require('./stats');
  10.  
  11.  
  12. // Authentication middleware ****
  13. function authMiddleware(req, res, next) {
  14.     // return next();
  15.     const token = req.header("x-access-token");
  16.     if (!token) {
  17.          // Ya gotta pass a token
  18.          res.status(401).json({ error: "Please pass a token" });
  19.         } else {
  20.              return jwt.verify(token, process.env.SECRET_KEY, (err, decoded) => {
  21.                 // mc.get('user', function (err, val) {
  22.                 //     if (err != null) {
  23.                 //         console.log('Error getting value: ' + err)
  24.                 //     }
  25.                 //     else if (val.toString('utf8') == decoded.email) {
  26.                 //         console.log("Verified");
  27.                 //     }
  28.                 //     else {
  29.                 //         console.log(val.toString('utf8'))
  30.                 //     }
  31.                 // })
  32.              if (err) {
  33.                  res.status(403).json({ error: "The token is incorrect" });
  34.              } else {
  35.                  req.user = decoded;
  36.                  next();
  37.                 }
  38.             })
  39.         }
  40.     }
  41.    
  42.    
  43.  
  44.  
  45. // What will be returned when you require this path
  46. module.exports = function (db, mc) {
  47.     // Serve file routes
  48.     router.use("/files", files(db, authMiddleware));
  49.  
  50.     // Serve post api content
  51.     router.use("/posts", posts(db, authMiddleware));
  52.  
  53.     // Serve authorized login content
  54.     router.use("/auth", auth(db));
  55.  
  56.     // Individual accounts
  57.     router.use("/accounts", accounts(db, authMiddleware));
  58.  
  59.     // Stats api
  60.     router.use("/stats", stats(db, mc, authMiddleware));
  61.  
  62.     return router;
  63. };
  64.