import { RequestHandler } from 'express'; import * as controller from './controller'; import { middleware } from './middleware'; import { RenderOAuth2Decision, OAuth2, OAuth2AdapterModel, } from './model/model'; import { OAuth2Logger } from './utils/logger'; export class OAuth2Provider implements OAuth2 { public bearer = middleware; public controller = controller; public logger = new OAuth2Logger('info'); constructor( public model: OAuth2AdapterModel, public decision: RenderOAuth2Decision ) {} express(): RequestHandler { return (req, _res, next) => { req.oauth2 = this; this.logger.debug('OAuth2 Injected into request'); next(); }; } }