@@ -28,32 +28,41 @@ export class IdToken {
2828 return idToken ;
2929 }
3030
31- sync ( ) : string | boolean {
31+ sync ( ) : string | boolean | void | null | undefined {
3232 const idToken = this . #syncToken( ) ;
3333 this . #syncExpiration( ) ;
3434
3535 return idToken ;
3636 }
3737
3838 reset ( ) {
39- this . #setToken( false ) ;
40- this . #setExpiration( false ) ;
39+ this . scheme . requestHandler ! . clearHeader ( ) ;
40+ this . #resetSSRToken( ) ;
41+ this . #setToken( undefined ) ;
42+ this . #setExpiration( undefined ) ;
4143 }
4244
4345 status ( ) : TokenStatus {
4446 return new TokenStatus ( this . get ( ) , this . #getExpiration( ) ) ;
4547 }
4648
49+ #resetSSRToken( ) : void {
50+ if ( this . scheme . options . ssr && this . scheme . options . idToken ?. httpOnly ) {
51+ const key = this . scheme . options . idToken ! . prefix + this . scheme . name ;
52+ this . scheme . $auth . request ( { baseURL : '' , url : '/_auth/reset' , body : new URLSearchParams ( { token : key } ) , method : 'POST' } )
53+ }
54+ }
55+
4756 #getExpiration( ) : number | false {
4857 const key = this . scheme . options . idToken . expirationPrefix + this . scheme . name ;
4958
5059 return this . $storage . getUniversal ( key ) as number | false ;
5160 }
5261
53- #setExpiration( expiration : number | false ) : number | false {
62+ #setExpiration( expiration : number | false | undefined | null ) : number | false | void | null | undefined {
5463 const key = this . scheme . options . idToken . expirationPrefix + this . scheme . name ;
5564
56- return this . $storage . setUniversal ( key , expiration ) as number | false ;
65+ return this . $storage . setUniversal ( key , expiration ) ;
5766 }
5867
5968 #syncExpiration( ) : number | false {
@@ -63,7 +72,7 @@ export class IdToken {
6372 return this . $storage . syncUniversal ( key ) as number | false ;
6473 }
6574
66- #updateExpiration( idToken : string | boolean ) : number | false | void {
75+ #updateExpiration( idToken : string | boolean ) : number | false | void | null | undefined {
6776 let idTokenExpiration : number ;
6877 const tokenIssuedAtMillis = Date . now ( ) ;
6978 const tokenTTLMillis = Number ( this . scheme . options . idToken . maxAge ) * 1000 ;
@@ -85,16 +94,16 @@ export class IdToken {
8594 return this . #setExpiration( idTokenExpiration || false ) ;
8695 }
8796
88- #setToken( idToken : string | boolean ) : string | boolean {
97+ #setToken( idToken : string | boolean | undefined | null ) : string | boolean | void | null | undefined {
8998 const key = this . scheme . options . idToken . prefix + this . scheme . name ;
9099
91100 return this . $storage . setUniversal ( key , idToken ) as string | boolean ;
92101 }
93102
94- #syncToken( ) : string | boolean {
103+ #syncToken( ) : string | boolean | void | null | undefined {
95104 const key = this . scheme . options . idToken . prefix + this . scheme . name ;
96105
97- return this . $storage . syncUniversal ( key ) as string | boolean ;
106+ return this . $storage . syncUniversal ( key )
98107 }
99108
100109 userInfo ( ) {
0 commit comments