Performance: Why authentication secures NestJS APIs
MEDIUM IMPACT
Authentication affects API request handling speed and server response time by adding verification steps before processing requests.
import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; import { JwtService } from '@nestjs/jwt'; @Injectable() export class AuthGuard implements CanActivate { constructor(private jwtService: JwtService) {} async canActivate(context: ExecutionContext): Promise<boolean> { const request = context.switchToHttp().getRequest(); const token = request.headers['authorization']; if (!token) return false; try { const user = await this.jwtService.verifyAsync(token); request.user = user; return true; } catch { return false; } } }
app.use((req, res, next) => {
const token = req.headers['authorization'];
if (!token) {
res.status(401).send('Unauthorized');
} else {
// Synchronous token verification blocking event loop
const user = verifyTokenSync(token);
if (!user) {
res.status(401).send('Unauthorized');
} else {
req.user = user;
next();
}
}
});| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Synchronous token verification | N/A | N/A | N/A | [X] Bad |
| Asynchronous token verification with JwtService | N/A | N/A | N/A | [OK] Good |