UNPKG

@quarks/quarks-iam

Version:

A modern authorization server built to authenticate your users and protect your APIs

49 lines (39 loc) 1.2 kB
/** * Module dependencies */ var Client = require('../models/Client') /** * Verify Redirect URI * * This route-specific middleware retrieves a registered client and adds it * to the request object for use downstream. It verifies that the client is * registered and that the redirect_uri parameter matches the configuration * of the registered client. * * However, unlike the verifyClient middleware, this middleware will not * cause any errors, but instead remove the invalid values off of the * req.connectParams object. */ function verifyRedirectURI (req, res, next) { var params = req.connectParams Client.get(params.client_id, { private: true }, function (err, client) { if (err) { return next(err) } // The client must be registered. if (!client || client.redirect_uris.indexOf(params.redirect_uri) === -1) { delete req.connectParams.client_id delete req.connectParams.redirect_uri delete req.connectParams.response_type delete req.connectParams.scope return next() } // Make client available to downstream middleware. req.client = client next() }) } /** * Exports */ module.exports = verifyRedirectURI