File size: 626 Bytes
ba5c923
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { Request, Response, NextFunction } from "express";

const authentication = (req: Request, res: Response, next: NextFunction) => {
  const authHeader = req.headers["authorization"];
  if (!authHeader) {
    return res.status(401).json({ message: "Missing authorization header" });
  }

  const apiKey = authHeader.split("Bearer ").at(-1);
  if (!apiKey) {
    return res.status(401).json({ message: "Invalid authorization format" });
  }

  if (process.env.API_KEY && apiKey === process.env.API_KEY) {
    next();
  } else {
    res.status(401).json({ message: "Unauthorized" });
  }
};

export default authentication;