Updates
This commit is contained in:
Vendored
+2
-1
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = fetchApi;
|
||||
const lodash_1 = __importDefault(require("lodash"));
|
||||
const get_csrf_header_name_1 = __importDefault(require("../../utils/get-csrf-header-name"));
|
||||
/**
|
||||
* # Fetch API
|
||||
*/
|
||||
@@ -27,7 +28,7 @@ localStorageCSRFKey) {
|
||||
"Content-Type": "application/json",
|
||||
};
|
||||
if (csrf && csrfValue) {
|
||||
finalHeaders[`${csrfValue.replace(/\"/g, "")}`] = "true";
|
||||
finalHeaders[(0, get_csrf_header_name_1.default)()] = csrfValue;
|
||||
}
|
||||
if (typeof options === "string") {
|
||||
try {
|
||||
|
||||
Vendored
+1
-2
@@ -16,7 +16,6 @@ type Param = {
|
||||
dsqlUserId?: string | number;
|
||||
expiry?: number;
|
||||
csrfHeaderName?: string;
|
||||
csrfHeaderIsValue?: boolean;
|
||||
};
|
||||
/**
|
||||
* Authenticate User from request
|
||||
@@ -24,5 +23,5 @@ type Param = {
|
||||
* @description This Function takes in a request object and returns a user object
|
||||
* with the user's data
|
||||
*/
|
||||
export default function userAuth({ request, req, encryptionKey, encryptionSalt, level, database, dsqlUserId, encryptedUserString, expiry, cookieString, csrfHeaderIsValue, csrfHeaderName, }: Param): AuthenticatedUser;
|
||||
export default function userAuth({ request, req, encryptionKey, encryptionSalt, level, database, dsqlUserId, encryptedUserString, expiry, cookieString, csrfHeaderName, }: Param): AuthenticatedUser;
|
||||
export {};
|
||||
|
||||
Vendored
+15
-16
@@ -1,5 +1,4 @@
|
||||
"use strict";
|
||||
// @ts-check
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
@@ -9,6 +8,7 @@ const decrypt_1 = __importDefault(require("../package-shared/functions/dsql/decr
|
||||
const get_auth_cookie_names_1 = __importDefault(require("../package-shared/functions/backend/cookies/get-auth-cookie-names"));
|
||||
const write_auth_files_1 = require("../package-shared/functions/backend/auth/write-auth-files");
|
||||
const parseCookies_1 = __importDefault(require("../package-shared/utils/backend/parseCookies"));
|
||||
const get_csrf_header_name_1 = __importDefault(require("../utils/get-csrf-header-name"));
|
||||
const minuteInMilliseconds = 60000;
|
||||
const hourInMilliseconds = minuteInMilliseconds * 60;
|
||||
const dayInMilliseconds = hourInMilliseconds * 24;
|
||||
@@ -21,7 +21,7 @@ const yearInMilliseconds = dayInMilliseconds * 365;
|
||||
* @description This Function takes in a request object and returns a user object
|
||||
* with the user's data
|
||||
*/
|
||||
function userAuth({ request, req, encryptionKey, encryptionSalt, level, database, dsqlUserId, encryptedUserString, expiry = weekInMilliseconds, cookieString, csrfHeaderIsValue, csrfHeaderName, }) {
|
||||
function userAuth({ request, req, encryptionKey, encryptionSalt, level, database, dsqlUserId, encryptedUserString, expiry = weekInMilliseconds, cookieString, csrfHeaderName, }) {
|
||||
try {
|
||||
const finalRequest = req || request;
|
||||
const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD;
|
||||
@@ -39,7 +39,6 @@ function userAuth({ request, req, encryptionKey, encryptionSalt, level, database
|
||||
const key = encryptedUserString
|
||||
? encryptedUserString
|
||||
: cookies[authKeyName];
|
||||
const csrf = cookies[csrfName];
|
||||
/**
|
||||
* Grab the payload
|
||||
*
|
||||
@@ -89,24 +88,24 @@ function userAuth({ request, req, encryptionKey, encryptionSalt, level, database
|
||||
* @description Grab the payload
|
||||
*/
|
||||
if ((level === null || level === void 0 ? void 0 : level.match(/deep/i)) && finalRequest) {
|
||||
if (csrfHeaderName &&
|
||||
finalRequest.headers[csrfHeaderName] !== userObject.csrf_k) {
|
||||
const finalCsrfHeaderName = csrfHeaderName || (0, get_csrf_header_name_1.default)();
|
||||
if (finalRequest.headers[finalCsrfHeaderName] !== userObject.csrf_k) {
|
||||
return {
|
||||
success: false,
|
||||
payload: null,
|
||||
msg: "CSRF_K mismatch",
|
||||
};
|
||||
}
|
||||
const targetCsrfHeaderKey = Object.keys(finalRequest.headers)
|
||||
.map((k) => k.replace(/[^a-zA-Z0-9\-]/g, ""))
|
||||
.find((k) => k == userObject.csrf_k);
|
||||
if (csrfHeaderIsValue && !targetCsrfHeaderKey) {
|
||||
return {
|
||||
success: false,
|
||||
payload: null,
|
||||
msg: "CSRF_K Header Key mismatch",
|
||||
};
|
||||
}
|
||||
// const targetCsrfHeaderKey = Object.keys(finalRequest.headers)
|
||||
// .map((k) => k.replace(/[^a-zA-Z0-9\-]/g, ""))
|
||||
// .find((k) => k == userObject.csrf_k);
|
||||
// if (csrfHeaderIsValue && !targetCsrfHeaderKey) {
|
||||
// return {
|
||||
// success: false,
|
||||
// payload: null,
|
||||
// msg: "CSRF_K Header Key mismatch",
|
||||
// };
|
||||
// }
|
||||
}
|
||||
const payloadCreationDate = Number(userObject.date);
|
||||
if (Number.isNaN(payloadCreationDate) ||
|
||||
@@ -138,7 +137,7 @@ function userAuth({ request, req, encryptionKey, encryptionSalt, level, database
|
||||
payload: userObject,
|
||||
};
|
||||
}
|
||||
catch ( /** @type {any} */error) {
|
||||
catch (error) {
|
||||
/**
|
||||
* Return User Object
|
||||
*
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
export default function getCsrfHeaderName(): string;
|
||||
Vendored
+6
@@ -0,0 +1,6 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.default = getCsrfHeaderName;
|
||||
function getCsrfHeaderName() {
|
||||
return "x-csrf-key";
|
||||
}
|
||||
Reference in New Issue
Block a user