You can use "azure-ad-jwt". This is fairly straightforward and does not require injection into the middleware. Of course, you can use it as an intermediate step in your own "middleware".
private verifyToken(req: any, res: any) { var audience = "xxxxxxxxx"; var tenantId = "xxxxxxxxx"; var authorization = req.headers['authorization']; return Rx.Observable.create((observer) => { if (authorization) { var bearer = authorization.split(" "); var jwtToken = bearer[1]; if (jwtToken) { aad.verify(jwtToken, { audience: audience, tenantId: tenantId }, function (err, result) { if (result) { observer.next(true); } else { res.status(401).send('That is not a valid token!'); } }) } else { res.status(401).send('No token in header.'); } } else { res.status(401).send('Missing authorization attribute in header.'); } }); }
source share