@@ -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" )
167185	return  r .rdb .ExpireAt (ctx , key , expiresAt .Add (tokenExpiresAtLeeway )).Err ()
168186}
169187
0 commit comments