add auth Handler

This commit is contained in:
OxSaitama 2023-06-21 15:51:09 +02:00
parent acbbba023c
commit 8ff4cc2afd
3 changed files with 25 additions and 4 deletions

View File

@ -6,6 +6,7 @@ import { Service } from "typedi";
import { validateOrReject } from "class-validator";
import User from "le-coffre-resources/dist/Notary";
import { Users } from "@prisma/client";
import authHandler from "@App/middlewares/AuthHandler";
@Controller()
@Service()
@ -17,7 +18,7 @@ export default class UsersController extends ApiController {
/**
* @description Get all users
*/
@Get("/api/v1/super-admin/users")
@Get("/api/v1/super-admin/users", [authHandler])
protected async get(req: Request, response: Response) {
try {
//get query
@ -40,7 +41,7 @@ export default class UsersController extends ApiController {
/**
* @description Create a new user
*/
@Post("/api/v1/super-admin/users")
@Post("/api/v1/super-admin/users", [authHandler])
protected async getAddresses(req: Request, response: Response) {
try {
//init IUser resource with request body values

View File

@ -0,0 +1,20 @@
import HttpCodes from "@Common/system/controller-pattern/HttpCodes";
import AuthService from "@Services/private-services/AuthService/AuthService";
import { NextFunction, Request, Response } from "express";
import Container from "typedi";
export default function authHandler(req: Request, response: Response, next: NextFunction) {
const authHeader = req.headers['authorization'];
const token = authHeader && authHeader.split(' ')[1];
if (!token) return response.sendStatus(HttpCodes.UNAUTHORIZED)
const authService = Container.get(AuthService);
authService.verifyAccessToken(token, (err, userPayload) => {
if (err) return response.sendStatus(HttpCodes.UNAUTHORIZED);
req.body.user = userPayload;
return;
})
return next();
}

View File

@ -3,7 +3,6 @@ import BaseService from "@Services/BaseService";
import "reflect-metadata";
import { BackendVariables } from "@Common/config/variables/Variables";
import { Service } from "typedi";
//import User from "le-coffre-resources/dist/Notary";
type IdNotTokens = {
access_token: string;
@ -12,7 +11,8 @@ type IdNotTokens = {
@Service()
export default class AuthService extends BaseService {
private constructor(protected variables: BackendVariables) {
constructor(protected variables: BackendVariables) {
super();
}