131 lines
4.5 KiB
JavaScript
131 lines
4.5 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.init = init;
|
|
var _crypto = require("crypto");
|
|
var _logger = _interopRequireDefault(require("../utils/logger"));
|
|
var _errors = require("./errors");
|
|
var _providers = _interopRequireDefault(require("./lib/providers"));
|
|
var _utils = require("./lib/utils");
|
|
var cookie = _interopRequireWildcard(require("./lib/cookie"));
|
|
var jwt = _interopRequireWildcard(require("../jwt"));
|
|
var _defaultCallbacks = require("./lib/default-callbacks");
|
|
var _csrfToken = require("./lib/csrf-token");
|
|
var _callbackUrl = require("./lib/callback-url");
|
|
var _parseUrl = _interopRequireDefault(require("../utils/parse-url"));
|
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
async function init({
|
|
authOptions,
|
|
providerId,
|
|
action,
|
|
origin,
|
|
cookies: reqCookies,
|
|
callbackUrl: reqCallbackUrl,
|
|
csrfToken: reqCsrfToken,
|
|
isPost
|
|
}) {
|
|
var _authOptions$useSecur, _authOptions$events;
|
|
const url = (0, _parseUrl.default)(origin);
|
|
const secret = (0, _utils.createSecret)({
|
|
authOptions,
|
|
url
|
|
});
|
|
const {
|
|
providers,
|
|
provider
|
|
} = (0, _providers.default)({
|
|
providers: authOptions.providers,
|
|
url,
|
|
providerId
|
|
});
|
|
const maxAge = 30 * 24 * 60 * 60;
|
|
const options = {
|
|
debug: false,
|
|
pages: {},
|
|
theme: {
|
|
colorScheme: "auto",
|
|
logo: "",
|
|
brandColor: "",
|
|
buttonText: ""
|
|
},
|
|
...authOptions,
|
|
url,
|
|
action,
|
|
provider,
|
|
cookies: {
|
|
...cookie.defaultCookies((_authOptions$useSecur = authOptions.useSecureCookies) !== null && _authOptions$useSecur !== void 0 ? _authOptions$useSecur : url.base.startsWith("https://")),
|
|
...authOptions.cookies
|
|
},
|
|
secret,
|
|
providers,
|
|
session: {
|
|
strategy: authOptions.adapter ? "database" : "jwt",
|
|
maxAge,
|
|
updateAge: 24 * 60 * 60,
|
|
generateSessionToken: () => {
|
|
var _randomUUID;
|
|
return (_randomUUID = _crypto.randomUUID === null || _crypto.randomUUID === void 0 ? void 0 : (0, _crypto.randomUUID)()) !== null && _randomUUID !== void 0 ? _randomUUID : (0, _crypto.randomBytes)(32).toString("hex");
|
|
},
|
|
...authOptions.session
|
|
},
|
|
jwt: {
|
|
secret,
|
|
maxAge,
|
|
encode: jwt.encode,
|
|
decode: jwt.decode,
|
|
...authOptions.jwt
|
|
},
|
|
events: (0, _errors.eventsErrorHandler)((_authOptions$events = authOptions.events) !== null && _authOptions$events !== void 0 ? _authOptions$events : {}, _logger.default),
|
|
adapter: (0, _errors.adapterErrorHandler)(authOptions.adapter, _logger.default),
|
|
callbacks: {
|
|
..._defaultCallbacks.defaultCallbacks,
|
|
...authOptions.callbacks
|
|
},
|
|
logger: _logger.default,
|
|
callbackUrl: url.origin
|
|
};
|
|
const cookies = [];
|
|
const {
|
|
csrfToken,
|
|
cookie: csrfCookie,
|
|
csrfTokenVerified
|
|
} = (0, _csrfToken.createCSRFToken)({
|
|
options,
|
|
cookieValue: reqCookies === null || reqCookies === void 0 ? void 0 : reqCookies[options.cookies.csrfToken.name],
|
|
isPost,
|
|
bodyValue: reqCsrfToken
|
|
});
|
|
options.csrfToken = csrfToken;
|
|
options.csrfTokenVerified = csrfTokenVerified;
|
|
if (csrfCookie) {
|
|
cookies.push({
|
|
name: options.cookies.csrfToken.name,
|
|
value: csrfCookie,
|
|
options: options.cookies.csrfToken.options
|
|
});
|
|
}
|
|
const {
|
|
callbackUrl,
|
|
callbackUrlCookie
|
|
} = await (0, _callbackUrl.createCallbackUrl)({
|
|
options,
|
|
cookieValue: reqCookies === null || reqCookies === void 0 ? void 0 : reqCookies[options.cookies.callbackUrl.name],
|
|
paramValue: reqCallbackUrl
|
|
});
|
|
options.callbackUrl = callbackUrl;
|
|
if (callbackUrlCookie) {
|
|
cookies.push({
|
|
name: options.cookies.callbackUrl.name,
|
|
value: callbackUrlCookie,
|
|
options: options.cookies.callbackUrl.options
|
|
});
|
|
}
|
|
return {
|
|
options,
|
|
cookies
|
|
};
|
|
} |