Skip to content

Commit 1fef72f

Browse files
adamrayakevinxh
andauthored
[commerce-sdk-react] Bug Fix Cookie expires time (@W-16626227@) (#1994)
* Fix Cookie expires converting seconds to Date * Update CHANGELOG.md * Add tests * PR Feedback * Update packages/commerce-sdk-react/CHANGELOG.md Co-authored-by: Kevin He <kevin.he@salesforce.com> Signed-off-by: Adam Raya <adamraya@users.noreply.github.com> * PR Feedback convert seconds to date in auth * Bump version * Bump retail-react-app * Update convertSecondsToDate logic * Support expires not defined --------- Signed-off-by: Adam Raya <adamraya@users.noreply.github.com> Co-authored-by: Kevin He <kevin.he@salesforce.com>
1 parent 7a47e6b commit 1fef72f

File tree

8 files changed

+33
-9
lines changed

8 files changed

+33
-9
lines changed

packages/commerce-sdk-react/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## v3.0.1 (Sep 03, 2024)
2+
- Fixed an issue where the `expires` attribute in cookies, ensuring it uses seconds instead of days. [#1994](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1994)
3+
14
## v3.0.0 (Aug 07, 2024)
25
- Add `meta.displayName` to queries. It can be used to identify queries in performance metrics or logs. [#1895](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1895)
36
- Upgrade to commerce-sdk-isomorphic v3.0.0 [#1914](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1914)

packages/commerce-sdk-react/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/commerce-sdk-react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@salesforce/commerce-sdk-react",
3-
"version": "3.0.0",
3+
"version": "3.0.1",
44
"description": "A library that provides react hooks for fetching data from Commerce Cloud",
55
"homepage": "https://github.com/SalesforceCommerceCloud/pwa-kit/tree/develop/packages/ecom-react-hooks#readme",
66
"bugs": {

packages/commerce-sdk-react/src/auth/index.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,21 @@ class Auth {
361361
store.delete(key)
362362
}
363363

364+
/**
365+
* Converts a duration in seconds to a Date object.
366+
* This function takes a number representing seconds and returns a Date object
367+
* for the current time plus the given duration.
368+
*
369+
* @param {number} seconds - The number of seconds to add to the current time.
370+
* @returns {Date} A Date object for the expiration time.
371+
*/
372+
private convertSecondsToDate(seconds: number): Date {
373+
if (typeof seconds !== 'number') {
374+
throw new Error('The refresh_token_expires_in seconds parameter must be a number.')
375+
}
376+
return new Date(Date.now() + seconds * 1000)
377+
}
378+
364379
/**
365380
* This method stores the TokenResponse object retrived from SLAS, and
366381
* store the data in storage.
@@ -377,9 +392,12 @@ class Auth {
377392
this.set('customer_type', isGuest ? 'guest' : 'registered')
378393

379394
const refreshTokenKey = isGuest ? 'refresh_token_guest' : 'refresh_token_registered'
395+
const expiresDate = res.refresh_token_expires_in
396+
? this.convertSecondsToDate(res.refresh_token_expires_in)
397+
: undefined
380398

381399
this.set(refreshTokenKey, res.refresh_token, {
382-
expires: res.refresh_token_expires_in
400+
expires: expiresDate
383401
})
384402
}
385403

packages/template-retail-react-app/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## v4.0.1 (Sept 4, 2024)
2+
- Updated @salesforce/commerce-sdk-react to 3.0.1 to fix an issue with the expires attribute of cookies, ensuring it uses seconds instead of days [#1994](https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1994)
3+
14
## v4.0.0 (Aug 7, 2024)
25

36
### New Features

packages/template-retail-react-app/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/template-retail-react-app/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@salesforce/retail-react-app",
3-
"version": "4.0.0",
3+
"version": "4.0.1",
44
"license": "See license in LICENSE",
55
"author": "cc-pwa-kit@salesforce.com",
66
"ccExtensibility": {
@@ -45,7 +45,7 @@
4545
"@lhci/cli": "^0.11.0",
4646
"@loadable/component": "^5.15.3",
4747
"@peculiar/webcrypto": "^1.4.2",
48-
"@salesforce/commerce-sdk-react": "3.0.0",
48+
"@salesforce/commerce-sdk-react": "3.0.1",
4949
"@salesforce/pwa-kit-dev": "3.7.0",
5050
"@salesforce/pwa-kit-react-sdk": "3.7.0",
5151
"@salesforce/pwa-kit-runtime": "3.7.0",

packages/test-commerce-sdk-react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
},
1919
"devDependencies": {
2020
"@loadable/component": "^5.15.3",
21-
"@salesforce/commerce-sdk-react": "3.0.0",
21+
"@salesforce/commerce-sdk-react": "3.0.1",
2222
"@salesforce/pwa-kit-dev": "3.7.0",
2323
"@salesforce/pwa-kit-react-sdk": "3.7.0",
2424
"@salesforce/pwa-kit-runtime": "3.7.0",

0 commit comments

Comments
 (0)