@@ -2,16 +2,16 @@ import type { TokenSource } from "./base";
22
33export type CookieNames = {
44 // Anonymous cookies
5- guestData : string ;
6- guestToken : string ; // HTTP ONLY
5+ guestData : string | null ;
6+ guestToken : string | null ; // HTTP ONLY
77
88 // Authenticated cookies
99 userData : string ;
1010 userToken : string ; // HTTP_ONLY
1111
1212 // Refresh token cookies
1313 refreshToken : string ; // HTTP_ONLY
14- guestRefreshTokenExists : string ;
14+ guestRefreshTokenExists : string | null ;
1515 userRefreshTokenExists : string ;
1616} ;
1717
@@ -88,24 +88,27 @@ export abstract class BaseCookieTokenSource<TRequest, TResponse>
8888 }
8989
9090 deleteAccessToken ( request : TRequest , response : TResponse ) : void {
91- const names = [ this . cookieNames . userToken , this . cookieNames . guestToken ] ;
91+ const names = [ this . cookieNames . userToken , this . cookieNames . guestToken ] . filter ( ( v ) => v !== null ) ;
9292
9393 for ( const name of names ) {
9494 this . deleteAccessTokenByName ( request , response , name ) ;
9595 }
9696 }
9797
98+ // Delete both the user and guest refresh token exists cookies
9899 deleteRefreshToken ( request : TRequest , response : TResponse ) : void {
99100 this . adapter . clearCookie ( request , response , this . cookieNames . refreshToken , {
100101 path : this . _getRefreshTokenPath ( request ) ,
101102 domain : this . adapter . getPrivateDomain ( request ) ,
102103 } ) ;
103104
104- this . deleteRefreshTokenExistsByName (
105- request ,
106- response ,
107- this . cookieNames . guestRefreshTokenExists ,
108- ) ;
105+ if ( this . cookieNames . guestRefreshTokenExists ) {
106+ this . deleteRefreshTokenExistsByName (
107+ request ,
108+ response ,
109+ this . cookieNames . guestRefreshTokenExists ,
110+ ) ;
111+ }
109112 this . deleteRefreshTokenExistsByName (
110113 request ,
111114 response ,
@@ -114,7 +117,7 @@ export abstract class BaseCookieTokenSource<TRequest, TResponse>
114117 }
115118
116119 deleteDataToken ( request : TRequest , response : TResponse ) : void {
117- const names = [ this . cookieNames . userData , this . cookieNames . guestData ] ;
120+ const names = [ this . cookieNames . userData , this . cookieNames . guestData ] . filter ( ( v ) => v !== null ) ;
118121
119122 for ( const name of names ) {
120123 this . deleteAccessTokenByName ( request , response , name ) ;
@@ -148,7 +151,7 @@ export abstract class BaseCookieTokenSource<TRequest, TResponse>
148151 }
149152
150153 getAccessToken ( request : TRequest ) : string | undefined {
151- const names = [ this . cookieNames . userToken , this . cookieNames . guestToken ] ;
154+ const names = [ this . cookieNames . userToken , this . cookieNames . guestToken ] . filter ( ( v ) => v !== null ) ;
152155 for ( const name of names ) {
153156 const value = this . adapter . getCookie ( request , name ) ;
154157 if ( value ) {
@@ -194,19 +197,23 @@ export abstract class BaseCookieTokenSource<TRequest, TResponse>
194197 token ,
195198 cookieOptions ,
196199 ) ;
197- this . deleteAccessTokenByName (
198- request ,
199- response ,
200- this . cookieNames . guestData ,
201- ) ;
200+ if ( this . cookieNames . guestData ) {
201+ this . deleteAccessTokenByName (
202+ request ,
203+ response ,
204+ this . cookieNames . guestData ,
205+ ) ;
206+ }
202207 } else {
203- this . adapter . setCookie (
204- request ,
205- response ,
206- this . cookieNames . guestData ,
207- token ,
208- cookieOptions ,
209- ) ;
208+ if ( this . cookieNames . guestData ) {
209+ this . adapter . setCookie (
210+ request ,
211+ response ,
212+ this . cookieNames . guestData ,
213+ token ,
214+ cookieOptions ,
215+ ) ;
216+ }
210217 this . deleteAccessTokenByName (
211218 request ,
212219 response ,
@@ -216,7 +223,7 @@ export abstract class BaseCookieTokenSource<TRequest, TResponse>
216223 }
217224
218225 getDataToken ( request : TRequest ) : string | undefined {
219- const names = [ this . cookieNames . userData , this . cookieNames . guestData ] ;
226+ const names = [ this . cookieNames . userData , this . cookieNames . guestData ] . filter ( ( v ) => v !== null ) ;
220227 for ( const name of names ) {
221228 const value = this . adapter . getCookie ( request , name ) ;
222229 if ( value ) {
@@ -258,19 +265,23 @@ export abstract class BaseCookieTokenSource<TRequest, TResponse>
258265 token ,
259266 cookieOptions ,
260267 ) ;
261- this . deleteAccessTokenByName (
262- request ,
263- response ,
264- this . cookieNames . guestToken ,
265- ) ;
268+ if ( this . cookieNames . guestToken ) {
269+ this . deleteAccessTokenByName (
270+ request ,
271+ response ,
272+ this . cookieNames . guestToken ,
273+ ) ;
274+ }
266275 } else {
267- this . adapter . setCookie (
268- request ,
269- response ,
270- this . cookieNames . guestToken ,
271- token ,
272- cookieOptions ,
273- ) ;
276+ if ( this . cookieNames . guestToken ) {
277+ this . adapter . setCookie (
278+ request ,
279+ response ,
280+ this . cookieNames . guestToken ,
281+ token ,
282+ cookieOptions ,
283+ ) ;
284+ }
274285 this . deleteAccessTokenByName (
275286 request ,
276287 response ,
@@ -314,19 +325,23 @@ export abstract class BaseCookieTokenSource<TRequest, TResponse>
314325 "1" ,
315326 cookieOptions ,
316327 ) ;
317- this . deleteRefreshTokenExistsByName (
318- request ,
319- response ,
320- this . cookieNames . guestRefreshTokenExists ,
321- ) ;
328+ if ( this . cookieNames . guestRefreshTokenExists ) {
329+ this . deleteRefreshTokenExistsByName (
330+ request ,
331+ response ,
332+ this . cookieNames . guestRefreshTokenExists ,
333+ ) ;
334+ }
322335 } else {
323- this . adapter . setCookie (
324- request ,
325- response ,
326- this . cookieNames . guestRefreshTokenExists ,
327- "1" ,
328- cookieOptions ,
329- ) ;
336+ if ( this . cookieNames . guestRefreshTokenExists ) {
337+ this . adapter . setCookie (
338+ request ,
339+ response ,
340+ this . cookieNames . guestRefreshTokenExists ,
341+ "1" ,
342+ cookieOptions ,
343+ ) ;
344+ }
330345 this . deleteRefreshTokenExistsByName (
331346 request ,
332347 response ,
0 commit comments