UNPKG

@qelos/auth

Version:

Express Passport authentication service

31 lines (28 loc) 1.11 kB
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(); }