@zeushq/nextjs-zidentity
Version:
Next.js SDK for signin in with Zeus Identity
48 lines • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var assert_1 = require("../utils/assert");
var frontend_1 = require("../frontend");
/**
* @ignore
*/
function withPageAuthRequiredFactory(loginUrl, getSession) {
var _this = this;
return function (optsOrComponent, csrOpts) {
if (optsOrComponent === void 0) { optsOrComponent = {}; }
if (typeof optsOrComponent === 'function') {
return (0, frontend_1.withPageAuthRequired)(optsOrComponent, csrOpts);
}
var getServerSideProps = optsOrComponent.getServerSideProps, returnTo = optsOrComponent.returnTo;
return function (ctx) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
var session, ret;
return (0, tslib_1.__generator)(this, function (_a) {
switch (_a.label) {
case 0:
(0, assert_1.assertCtx)(ctx);
session = getSession(ctx.req, ctx.res);
if (!(session === null || session === void 0 ? void 0 : session.user)) {
// 10 - redirect
// 9.5.4 - unstable_redirect
// 9.4 - res.setHeaders
return [2 /*return*/, {
redirect: {
destination: loginUrl + "?returnTo=" + encodeURIComponent(returnTo || ctx.resolvedUrl),
permanent: false
}
}];
}
ret = { props: {} };
if (!getServerSideProps) return [3 /*break*/, 2];
return [4 /*yield*/, getServerSideProps(ctx)];
case 1:
ret = _a.sent();
_a.label = 2;
case 2: return [2 /*return*/, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, ret), { props: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, ret.props), { user: session.user }) })];
}
});
}); };
};
}
exports.default = withPageAuthRequiredFactory;
//# sourceMappingURL=with-page-auth-required.js.map