/* * UserOnly Middleware * ------------------------------------------------------------- * Allows the request to proceed if there's an authenticated user * in the session. Otherwise, redirects the user to the login page * of the default provider. */ const Middleware = require('flitter-auth/middleware/UserOnly') class UserOnly extends Middleware { static get services() { return [...super.services, 'output'] } async test(req, res, next, args = {}){ if ( req.is_auth ) return next() else { // If not signed in, save the target url so we can redirect back here after auth req.session.auth.flow = req.originalUrl this.output.debug('Set auth flow: '+req.originalUrl) return res.redirect('/auth/login') } } } module.exports = UserOnly