@foal/core
Version:
Full-featured Node.js framework, with no complexity
21 lines (20 loc) • 753 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UserRequired = UserRequired;
const core_1 = require("../../../core");
function UserRequired(options = {}) {
function hook(ctx) {
if (!ctx.user) {
if (options.redirectTo) {
return new core_1.HttpResponseRedirect(options.redirectTo);
}
return new core_1.HttpResponseUnauthorized();
}
}
const openapi = [
options.redirectTo ?
(0, core_1.ApiResponse)(302, { description: 'Unauthenticated request.' }) :
(0, core_1.ApiResponse)(401, { description: 'Unauthenticated request.' })
];
return (0, core_1.Hook)(hook, openapi, { openapi: options.openapi });
}