am totally new to this Access Token and Refresh Token kindly correct me if am wrong in any place. To my knowledge Refresh Token Rotation means every time a user asks for AT (with valid RT) new pair of AT1 and RT1 will be given. So the next time user should use the new RT1 to renew the AT and will be given with new pair of AT2 and RT2.
My questions are:
To implement RT Rotation we need to store the RT in the database. So which RT do we need to store in the DB the older one or the newly issued RT. according to this, we need to store all the expired RT and need to check DB for every AT renewal request and if it is in the DB then we need to immediately invalidate the refresh token family. but if we do this we may need to store more amount of RTs in DB for a single user and this will be huge when considering all the users in a system. is it the correct way to implement RT Rotation if not what is the correct way to implement RT Rotation?
In this Documentation regarding the RT Rotation ( under Automatic Reuse Detection 4th point ), they mentioned like this immediately invalidates the refresh token family. So is this means every RT issued from initial authentication will have any same characteristics to identify them as one token family ( because it is mentioned as Refresh Token Family )
when a user logout from a system how we can invalidate the RT ?. I don't think simply removing RT from cookies is not the correct way, because for example if expire time of RT is one day and the user log out before its expire time still the RT is usable (unless we stored the previous RT in DB and check for the next renewal of AT) until its expiration time is reached. So how to solve this.