@strongnguyen/oidc-provider
Version:
OAuth 2.0 Authorization Server implementation for Node.js with OpenID Connect
27 lines (23 loc) • 820 B
JavaScript
const { InvalidRequest } = require('../../helpers/errors');
/*
* Makes sure that
* - unauthenticated clients send the JAR Request Object
* - either JAR or plain request is provided
* - request_uri is not used
*
* @throws: invalid_request
*/
module.exports = function stripOutsideJarParams(ctx, next) {
const JAR = !!ctx.oidc.params.request;
for (const [param, value] of Object.entries(ctx.oidc.params)) { // eslint-disable-line no-restricted-syntax, max-len
if (value !== undefined) {
if (param === 'request_uri') {
throw new InvalidRequest('`request_uri` parameter must not be used at the pushed_authorization_request_endpoint');
}
if (JAR && (param !== 'client_id' && param !== 'request')) {
ctx.oidc.params[param] = undefined;
}
}
}
return next();
};