@@ -7,9 +7,11 @@ import {
7
7
8
8
import { provideApolloClient } from "@vue/apollo-composable" ;
9
9
10
- const SEVEN_DAYS = 7 * 24 * 60 * 60 * 1000 ; // 7 days in milliseconds
11
-
12
10
export default defineNuxtPlugin ( ( nuxtApp ) => {
11
+ const cookie = useCookie ( "woo-session" , {
12
+ maxAge : 1_209_600 , // 14 days
13
+ sameSite : "lax" ,
14
+ } ) ;
13
15
const config = useRuntimeConfig ( ) ;
14
16
15
17
const httpLink = createHttpLink ( {
@@ -20,25 +22,13 @@ export default defineNuxtPlugin((nuxtApp) => {
20
22
/**
21
23
* If session data exist in local storage, set value as session header.
22
24
*/
23
- const sessionData = process . client
24
- ? JSON . parse ( localStorage . getItem ( "woo-session" ) )
25
- : null ;
26
25
27
- if ( sessionData && sessionData . token && sessionData . createdTime ) {
28
- const { token, createdTime } = sessionData ;
29
-
30
- // Check if the token is older than 7 days
31
- if ( Date . now ( ) - createdTime > SEVEN_DAYS ) {
32
- // If it is, delete it
33
- localStorage . removeItem ( "woo-session" ) ;
34
- } else {
35
- // If it's not, use the token
36
- operation . setContext ( ( ) => ( {
37
- headers : {
38
- "woocommerce-session" : `Session ${ token } ` ,
39
- } ,
40
- } ) ) ;
41
- }
26
+ if ( process . client && cookie . value ) {
27
+ operation . setContext ( ( ) => ( {
28
+ headers : {
29
+ "woocommerce-session" : `Session ${ cookie . value } ` ,
30
+ } ,
31
+ } ) ) ;
42
32
}
43
33
44
34
return forward ( operation ) ;
@@ -55,18 +45,11 @@ export default defineNuxtPlugin((nuxtApp) => {
55
45
response : { headers } ,
56
46
} = context ;
57
47
58
- const session = headers . get ( "woocommerce-session" ) ;
48
+ const session = headers . get ( "woocommerce-session" ) || cookie . value ;
59
49
60
- if ( session && process . client ) {
61
- if ( session === "false" ) {
62
- // Remove session data if session destroyed.
63
- localStorage . removeItem ( "woo-session" ) ;
64
- // Update session new data if changed.
65
- } else if ( ! localStorage . getItem ( "woo-session" ) ) {
66
- localStorage . setItem (
67
- "woo-session" ,
68
- JSON . stringify ( { token : session , createdTime : Date . now ( ) } )
69
- ) ;
50
+ if ( process . client && session ) {
51
+ if ( session !== cookie . value ) {
52
+ cookie . value = session ;
70
53
}
71
54
}
72
55
return response ;
@@ -102,11 +85,6 @@ export default defineNuxtPlugin((nuxtApp) => {
102
85
provideApolloClient ( apolloClient ) ;
103
86
104
87
nuxtApp . hook ( "apollo:auth" , ( { token } ) => {
105
- if ( process . client ) {
106
- const sessionData = JSON . parse ( localStorage . getItem ( "woo-session" ) ) ;
107
- if ( sessionData && sessionData . token ) {
108
- token . value = sessionData . token ;
109
- }
110
- }
88
+ token . value = cookie . value ;
111
89
} ) ;
112
- } ) ;
90
+ } ) ;
0 commit comments