joshlei-cookies 2.0.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +17 -7
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -309,11 +309,18 @@ export const SetJSCookie = async (name, data, options = {}) => {
309
309
  const tokenParts = data.token.split('.');
310
310
  if (tokenParts.length === 3) {
311
311
  try {
312
- sessionStorage.setItem(`jstudio_token_${name}`, data.token);
312
+ const encryptedToken = await CryptoManager.encrypt(data.token, hashedKey);
313
+ sessionStorage.setItem(`jstudio_token_${name}`, encryptedToken);
313
314
  const { token, ...rest } = data;
314
315
  dataToStore = { ...rest, __tokenSaved: true };
315
316
  } catch (storageErr) {
316
- dataToStore = data;
317
+ try {
318
+ sessionStorage.setItem(`jstudio_token_${name}`, data.token);
319
+ const { token, ...rest } = data;
320
+ dataToStore = { ...rest, __tokenSaved: true };
321
+ } catch (e) {
322
+ dataToStore = data;
323
+ }
317
324
  }
318
325
  }
319
326
  }
@@ -340,12 +347,16 @@ export const GetJSCookie = async (name) => {
340
347
  const decryptedData = await CryptoManager.decrypt(encryptedData, hashedKey);
341
348
  const parsed = JSON.parse(decryptedData);
342
349
 
343
- // If token was saved separately in sessionStorage, reattach it to the returned object.
344
350
  if (isBrowser && parsed && parsed.__tokenSaved) {
345
351
  try {
346
- const token = sessionStorage.getItem(`jstudio_token_${name}`);
347
- if (token) {
348
- parsed.token = token;
352
+ const stored = sessionStorage.getItem(`jstudio_token_${name}`);
353
+ if (stored) {
354
+ try {
355
+ const decryptedToken = await CryptoManager.decrypt(stored, hashedKey);
356
+ parsed.token = decryptedToken;
357
+ } catch (decryptErr) {
358
+ parsed.token = stored;
359
+ }
349
360
  }
350
361
  delete parsed.__tokenSaved;
351
362
  } catch (storageErr) {
@@ -368,7 +379,6 @@ export const RemoveJSCookie = (name, options = {}) => {
368
379
  }
369
380
 
370
381
  try {
371
- // Also remove any token saved in sessionStorage
372
382
  try {
373
383
  if (isBrowser) sessionStorage.removeItem(`jstudio_token_${name}`);
374
384
  } catch (e) {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joshlei-cookies",
3
- "version": "2.0.0",
3
+ "version": "2.5.0",
4
4
  "description": "A secure cookie management library with built-in AES encryption for browser environments",
5
5
  "main": "index.js",
6
6
  "type": "module",