@@ -6,22 +6,26 @@ import { MILLS_PER_SECOND, refresh, RequestContext } from "./RequestContext";
6
6
export class ClientRequestContext implements RequestContext {
7
7
isServer = false ;
8
8
9
+ userId ?: string ;
9
10
accessToken ?: string ;
10
11
expiresIn ?: number ;
11
12
refreshToken ?: string ;
12
13
refreshExpiresIn ?: number ;
13
14
refreshHandle ?: NodeJS . Timeout ;
14
15
15
16
constructor ( ) {
17
+ this . userId = Cookies . get ( "userId" ) ;
16
18
this . accessToken = Cookies . get ( "accessToken" ) ;
17
19
this . expiresIn = Number ( Cookies . get ( "expiresIn" ) ) ;
18
20
this . refreshToken = Cookies . get ( "refreshToken" ) ;
19
21
this . refreshExpiresIn = Number ( Cookies . get ( "refreshExpiresIn" ) ) ;
20
22
const now = new Date ( ) . getTime ( ) ;
21
23
22
24
if ( now > this . expiresIn * MILLS_PER_SECOND ) {
25
+ this . userId = undefined
23
26
this . accessToken = undefined ;
24
27
this . expiresIn = undefined ;
28
+ Cookies . remove ( "userId" ) ;
25
29
Cookies . remove ( "accessToken" ) ;
26
30
Cookies . remove ( "expiresIn" ) ;
27
31
}
@@ -47,6 +51,7 @@ export class ClientRequestContext implements RequestContext {
47
51
authInfo : AuthInfo ,
48
52
relayEnvironment : RelayModernEnvironment
49
53
) : void {
54
+ setCookie ( "userId" , authInfo . userId , authInfo . expiresIn ) ;
50
55
setCookie ( "accessToken" , authInfo . accessToken , authInfo . expiresIn ) ;
51
56
setCookie ( "expiresIn" , authInfo . expiresIn , authInfo . expiresIn ) ;
52
57
setCookie ( "refreshToken" , authInfo . refreshToken , authInfo . refreshExpiresIn ) ;
@@ -56,18 +61,21 @@ export class ClientRequestContext implements RequestContext {
56
61
authInfo . refreshExpiresIn
57
62
) ;
58
63
64
+ this . userId = authInfo . userId ;
59
65
this . accessToken = authInfo . accessToken ;
60
66
this . expiresIn = authInfo . expiresIn ;
61
67
this . refreshToken = authInfo . refreshToken ;
62
68
this . refreshExpiresIn = authInfo . refreshExpiresIn ;
63
69
}
64
70
65
71
onLogout ( ) : void {
72
+ this . userId = undefined ;
66
73
this . accessToken = undefined ;
67
74
this . expiresIn = undefined ;
68
75
this . refreshToken = undefined ;
69
76
this . refreshExpiresIn = undefined ;
70
77
78
+ Cookies . remove ( "userId" ) ;
71
79
Cookies . remove ( "accessToken" ) ;
72
80
Cookies . remove ( "expiresIn" ) ;
73
81
Cookies . remove ( "refreshToken" ) ;
@@ -93,6 +101,8 @@ function setCookie(name: string, value: string | number, expiresSec: number) {
93
101
const v = typeof value === "string" ? value : value . toString ( ) ;
94
102
Cookies . set ( name , v , {
95
103
expires : new Date ( expiresSec * MILLS_PER_SECOND ) ,
104
+ path : '/' ,
105
+ // httpOnly: true,
96
106
secure : true ,
97
107
sameSite : "Strict" ,
98
108
} ) ;
0 commit comments