@@ -42,10 +42,14 @@ func (r RedisAdapter) SetAccessToken(ctx context.Context, token models.AuthToken
4242 return r .setAuthToken (ctx , token )
4343}
4444
45- func (r RedisAdapter ) SetAccessTokenExpiry (ctx context.Context , token models.AuthToken , expiresAt time.Time ) error {
45+ func (r RedisAdapter ) SetAccessTokenExpiry (ctx context.Context , token models.AuthToken , expiresAtLimit time.Time ) error {
4646 if token .Type != models .AccessTokenType {
4747 return fmt .Errorf ("token is not of the right type" )
4848 }
49+ expiresAt := expiresAtLimit
50+ if ! token .ExpiresAt .IsZero () && token .ExpiresAt .Before (expiresAtLimit ) {
51+ expiresAt = token .ExpiresAt
52+ }
4953 return r .setAuthTokenExpiry (ctx , token , expiresAt )
5054}
5155
@@ -57,10 +61,15 @@ func (r RedisAdapter) SetRefreshToken(ctx context.Context, token models.AuthToke
5761 return r .setAuthToken (ctx , token )
5862}
5963
60- func (r RedisAdapter ) SetRefreshTokenExpiry (ctx context.Context , token models.AuthToken , expiresAt time.Time ) error {
64+ func (r RedisAdapter ) SetRefreshTokenExpiry (ctx context.Context , token models.AuthToken , expiresAtLimit time.Time ) error {
6165 if token .Type != models .RefreshTokenType {
6266 return fmt .Errorf ("token is not of the right type" )
6367 }
68+ expiresAt := expiresAtLimit
69+ if ! token .ExpiresAt .IsZero () && token .ExpiresAt .Before (expiresAtLimit ) {
70+ expiresAt = token .ExpiresAt
71+ }
72+ slog .Info ("refresh token expiry" , "limit" , expiresAtLimit , "token expires" , token .ExpiresAt , "expires" , expiresAt , "zero" , token .ExpiresAt .IsZero ())
6473 return r .setAuthTokenExpiry (ctx , token , expiresAt )
6574}
6675
@@ -71,10 +80,14 @@ func (r RedisAdapter) SetIDToken(ctx context.Context, token models.AuthToken) er
7180 return r .setAuthToken (ctx , token )
7281}
7382
74- func (r RedisAdapter ) SetIDTokenExpiry (ctx context.Context , token models.AuthToken , expiresAt time.Time ) error {
83+ func (r RedisAdapter ) SetIDTokenExpiry (ctx context.Context , token models.AuthToken , expiresAtLimit time.Time ) error {
7584 if token .Type != models .IDTokenType {
7685 return fmt .Errorf ("token is not of the right type" )
7786 }
87+ expiresAt := expiresAtLimit
88+ if ! token .ExpiresAt .IsZero () && token .ExpiresAt .Before (expiresAtLimit ) {
89+ expiresAt = token .ExpiresAt
90+ }
7891 return r .setAuthTokenExpiry (ctx , token , expiresAt )
7992}
8093
@@ -155,15 +168,20 @@ func (r RedisAdapter) setAuthToken(ctx context.Context, token models.AuthToken)
155168}
156169
157170func (r RedisAdapter ) setAuthTokenExpiry (ctx context.Context , token models.AuthToken , expiresAt time.Time ) error {
171+ slog .Info ("refresh token expiry 1" )
158172 err := validateTokenType (token .Type )
173+ slog .Info ("refresh token expiry 2" , "err" , err )
159174 if err != nil {
160175 return err
161176 }
162177
163178 key := r .getTokenKey (token )
179+ slog .Info ("refresh token expiry 3" , "key" , key )
164180 if expiresAt .IsZero () {
181+ slog .Info ("refresh token expiry 4" )
165182 return r .rdb .Persist (ctx , key ).Err ()
166183 }
184+ slog .Info ("refresh token expiry 5" , "expires" , expiresAt , "withlw" , expiresAt .Add (tokenExpiresAtLeeway ))
167185 return r .rdb .ExpireAt (ctx , key , expiresAt .Add (tokenExpiresAtLeeway )).Err ()
168186}
169187
0 commit comments