@@ -21,25 +21,43 @@ export class CookieTokenSource implements TokenSource {
21
21
22
22
cookieNames = {
23
23
accessToken : "authToken" ,
24
- accessTokenFingerprint : "authTokenHash" ,
24
+ accessTokenHash : "authTokenHash" ,
25
25
refreshToken : "authRefreshToken" ,
26
26
refreshTokenExist : "authRefreshTokenExist" ,
27
27
} ;
28
28
29
+ _getCookieName ( name : string ) : string {
30
+ if ( this . options . secure ) return `__Host-${ name } ` ;
31
+ return `${ name } ` ;
32
+ }
33
+
34
+ _getCookie ( request : Request , name : string ) {
35
+ return request . cookies [ this . _getCookieName ( name ) ] ;
36
+ }
37
+
38
+ _setCookie (
39
+ response : Response ,
40
+ name : string ,
41
+ value : string ,
42
+ options : CookieOptions
43
+ ) {
44
+ response . cookie ( this . _getCookieName ( name ) , value , options ) ;
45
+ }
46
+
29
47
getAccessToken ( request : Request ) : string {
30
- return request . cookies [ this . cookieNames . accessToken ] ;
48
+ return this . _getCookie ( request , this . cookieNames . accessToken ) ;
31
49
}
32
50
33
51
getRefreshToken ( request : Request ) : string {
34
- return request . cookies [ this . cookieNames . refreshToken ] ;
52
+ return this . _getCookie ( request , this . cookieNames . refreshToken ) ;
35
53
}
36
54
37
55
getFingerprint ( request : Request ) : string {
38
- return request . cookies [ this . cookieNames . accessTokenFingerprint ] ;
56
+ return this . _getCookie ( request , this . cookieNames . accessTokenHash ) ;
39
57
}
40
58
41
59
setAccessToken ( response : Response , token : string ) {
42
- response . cookie ( this . cookieNames . accessToken , token , {
60
+ this . _setCookie ( response , this . cookieNames . accessToken , token , {
43
61
httpOnly : false ,
44
62
secure : this . options . secure ,
45
63
sameSite : this . options . sameSite ,
@@ -48,15 +66,15 @@ export class CookieTokenSource implements TokenSource {
48
66
49
67
setRefreshToken ( response : Response , token : string ) {
50
68
const expiresAt = new Date ( Date . now ( ) + 1000 * 60 * 60 * 24 * 365 ) ;
51
- response . cookie ( this . cookieNames . refreshToken , token , {
69
+ this . _setCookie ( response , this . cookieNames . refreshToken , token , {
52
70
httpOnly : true ,
53
71
path : this . options . refreshTokenPath ,
54
72
secure : this . options . secure ,
55
73
sameSite : this . options . sameSite ,
56
74
expires : expiresAt ,
57
75
} ) ;
58
76
59
- response . cookie ( this . cookieNames . refreshTokenExist , "1" , {
77
+ this . _setCookie ( response , this . cookieNames . refreshTokenExist , "1" , {
60
78
httpOnly : false ,
61
79
secure : this . options . secure ,
62
80
sameSite : this . options . sameSite ,
@@ -65,8 +83,7 @@ export class CookieTokenSource implements TokenSource {
65
83
}
66
84
67
85
setFingerprint ( response : Response , fingerprint : string ) {
68
- response . cookie ( this . cookieNames . accessTokenFingerprint , fingerprint , {
69
- path : "/graphql" ,
86
+ this . _setCookie ( response , this . cookieNames . accessTokenHash , fingerprint , {
70
87
httpOnly : true ,
71
88
secure : this . options . secure ,
72
89
sameSite : this . options . sameSite ,
0 commit comments