Legacy refresh-token reuse in GoTrue v2.197.0: descendant refresh succeeds shortly after family revocation #52614
Replies: 1 comment
|
Your reading in question 1 is what the code does, and it is still what
|
|
Your reading in question 1 is what the code does, and it is still what
|
Uh oh!
There was an error while loading. Please reload this page.
Hello Supabase community,
I would appreciate clarification about legacy refresh-token reuse detection in GoTrue v2.197.0.
This is an anonymized, synthetic laboratory scenario using fictitious data, not a report of verified behavior in hosted production. The numbers below are illustrative token labels, not token values or real identifiers.
Lab sequence:
34 → 35 → 36.34after a measured interval of 12.412 seconds, with a configured reuse interval of 10 seconds.refresh_token_already_used.36succeeds 287 milliseconds after the rejection, issuing a new token labeled37.The replayed token
34is the grandparent of36, not its immediate parent.The session documentation describes exceptions for reuse within the interval and reuse of the active token’s immediate parent. Outside those exceptions, it describes session termination and revocation of its refresh tokens.
The initial rejection therefore seems expected. The subsequent successful refresh using
36is the behavior we would like to understand. This concerns issuance of a new refresh token, rather than continued validity of an already-issued access JWT.Questions:
I found PR #2624, concerning revoked legacy tokens during MFA upgrades, but could not establish that it addresses this sequence. I also found discussion #26864, which concerns indefinite reuse rather than refresh after family revocation.
Could a maintainer clarify the expected behavior or point us to an existing discussion or fix?
Thank you.
All reactions