28 lines
582 B
TypeScript
28 lines
582 B
TypeScript
import { Request, Response, NextFunction } from 'express';
|
|
import { verify } from 'jsonwebtoken';
|
|
import admin from '../config/admin';
|
|
|
|
import authConfig from '../config/auth';
|
|
|
|
import AppError from '../errors/AppError';
|
|
|
|
interface TokenPayload {
|
|
iat: number;
|
|
exp: number;
|
|
sub: string;
|
|
}
|
|
|
|
export default function ensureAdmin(
|
|
request: Request,
|
|
response: Response,
|
|
next: NextFunction,
|
|
): void {
|
|
const adminToken = request.admin_token;
|
|
|
|
if (admin.key != adminToken) {
|
|
throw new AppError('You don\'t have permission to perform this action.', 401);
|
|
}
|
|
|
|
next();
|
|
}
|