@alan-wood Hmmm.
First, thanks for filing the issue. I appreciate it.
but there is no call when the one-time JWT refresh token is "re-used".
Second, I'm pretty sure the webhook idea will work. Here's my thoughts:
User 123 logs in, gets refresh token A
Use refresh token to get a new (access token, refresh token) pair
System catches
jwt refresh event and records token A for this user (so the userId 123, token A pair). It generates token B.
Use refresh token A again to attempt to get a new pair, this fails [so far so good]
The webhook should fire again and records that token A was used again (by looking up the refresh token value in the pair). Uh-oh!
Fire off an event to revoke all refresh tokens for the user 123:
https://fusionauth.io/docs/v1/tech/apis/jwt#revoke-refresh-tokens
Using refresh token B will fail, because all refresh tokens are revoked.
Have you tried this approach? What am I missing?