@qelos/auth
Version:
Express Passport authentication service
31 lines (28 loc) • 1.11 kB
text/typescript
import { NextFunction, Response, RequestHandler } from 'express';
import { AuthRequest } from '../../types';
import { showLogs } from '../../config';
import logger from '../services/logger';
export const onlyAuthenticated = <RequestHandler>function onlyAuthenticated(req: AuthRequest, res: Response, next: NextFunction) {
if (!req.userPayload) {
res.status(401).json({ message: 'you are not authorized. must be logged in.' }).end();
return;
}
next()
}
export const onlyPrivileged = <RequestHandler>function onlyPrivileged(req: AuthRequest, res: Response, next: NextFunction) {
if (!(req.userPayload && req.userPayload.isPrivileged)) {
const message = req.userPayload ? 'you are not privileged.' : 'you are not authorized. must be logged in.';
res.status(401).json({ message }).end();
if (showLogs) {
logger.log('not privileged request to only-privileged route', {
tenant: req.headers.tenant,
tenanthost: req.headers.tenanthost,
url: req.url,
user: req.userPayload,
headers: req.headers,
});
}
return;
}
next();
}