phx-react
Version:
PHX REACT
43 lines • 1.56 kB
JavaScript
import CryptoJS from 'crypto-js';
import { ACTION_PERMISSION, IV_LENGTH, SECRET_KEY } from '../../utils/constants';
import Cookies from 'js-cookie';
export function encryptDataSync(data) {
var iv = CryptoJS.lib.WordArray.random(IV_LENGTH);
var encrypted = CryptoJS.AES.encrypt(JSON.stringify(data), CryptoJS.enc.Hex.parse(SECRET_KEY), {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return {
iv: CryptoJS.enc.Base64.stringify(iv),
encryptedData: encrypted.toString()
};
}
function descriptCoookie(encryptedData) {
try {
var iv = encryptedData.iv, cipherText = encryptedData.encryptedData;
var ivBytes = CryptoJS.enc.Base64.parse(iv);
var secretKeyBytes = CryptoJS.enc.Hex.parse(SECRET_KEY);
var decrypted = CryptoJS.AES.decrypt(cipherText, secretKeyBytes, {
iv: ivBytes,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return JSON.parse(decrypted.toString(CryptoJS.enc.Utf8));
}
catch (error) {
console.error(error);
return null;
}
}
export var PHXFuncGetActionPermissionV3 = function (keyAction) {
var actionPermissionString = Cookies.get(ACTION_PERMISSION);
if (!actionPermissionString) {
return null;
}
var actionPermissionJson = JSON.parse(actionPermissionString);
var result = descriptCoookie(actionPermissionJson);
var isAllowed = result[keyAction];
return isAllowed;
};
//# sourceMappingURL=getActionPermission.js.map