diff --git a/src/Constants/Constants.js b/src/Constants/Constants.js index aaf5bd7..da74880 100644 --- a/src/Constants/Constants.js +++ b/src/Constants/Constants.js @@ -1,6 +1,7 @@ import dns from "node:dns" import * as XLSX from 'xlsx'; +import CryptoJS from "crypto-js"; export const generateSerialNumber = (index, currentPage, pageSize) => { @@ -218,4 +219,18 @@ export function formatDateToYYYYMMDD(dateString) { // Combine the formatted parts return `${year}-${month}-${day}`; -} \ No newline at end of file +} + + +// Encrypt a string +export const encryptString = (text) => { + const ciphertext = CryptoJS.AES.encrypt(text, import.meta.env.VITE_ROLE_ENCRYPTION_KEY).toString(); + return ciphertext; +}; + +// Decrypt a string +export const decryptString = (ciphertext) => { + const bytes = CryptoJS.AES.decrypt(ciphertext, import.meta.env.VITE_ROLE_ENCRYPTION_KEY); + const originalText = bytes.toString(CryptoJS.enc.Utf8); + return originalText; +}; \ No newline at end of file diff --git a/src/Services/token.serivce.js b/src/Services/token.serivce.js index 639fdf8..1b2b827 100644 --- a/src/Services/token.serivce.js +++ b/src/Services/token.serivce.js @@ -1,4 +1,5 @@ import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; +import { encryptString } from '../Constants/Constants' // Define a base query function with RTK Query // export const baseQuery = fetchBaseQuery({ @@ -100,7 +101,7 @@ export const apiSlice = createApi({ localStorage.setItem("refreshToken", data?.data?.refresh?.token); // localStorage.setItem('refreshTokenExp', data?.data?.refresh?.expires); localStorage.setItem("accessTokenExp", data?.data?.access?.expires); - localStorage.setItem("role", data?.data?.role); + localStorage.setItem("role", encryptString(data?.data?.role)); } catch (error) { console.error("Login failed:", error); }