icynet-auth-server/src/middleware/auth.middleware.ts

22 lines
561 B
TypeScript

import {
Injectable,
NestMiddleware,
UnauthorizedException,
} from '@nestjs/common';
import { NextFunction, Request, Response } from 'express';
@Injectable()
export class AuthMiddleware implements NestMiddleware {
use(req: Request, res: Response, next: NextFunction) {
if (!req.session.user) {
if (req.header('content-type')?.includes('application/json')) {
throw new UnauthorizedException('Unauthorized');
}
res.redirect('/login?redirectTo=' + encodeURIComponent(req.originalUrl));
return;
}
next();
}
}