The access token do not guarantee that the user is logged in
aud: the audience (destination) is the resource server where the protected resource reside
expiration based on use case:
read only, low risk data → long expiration time
read only, sensitive data → short expiration time
read and write, sensitive data → very short expiration time
Refresh Tokens
They are opaque
They are used exactly at one place: /token end point of our authorization server
The authorization server can take the refresh token, make sure it is still active and then issue a new access or refresh token
It is very dangerous token and should be protected, An attacker can use it to retrieve a new access token indefinitely. Only way to stop attacker is to revoke a refresh token