Reputation: 5796
I've already seen
Why Does OAuth v2 Have Both Access and Refresh Tokens?
https://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/
As per my understanding, this is how OAuth v2 works:
1) user sends his credentials to the server which validates it and returns an access_token
and a refresh_token
2) user sends this acsess_token
along with further requests to identify himself
3) when the access_token
expires, the user sends another request to the server with refresh_token
and other required parameters asking for a new access_token
and refresh_token
Here's my question:
What's the need of a separate refresh_token
? Why not send the old access_token
( which is about to be expired anyway ), for a new one ??
What's the additional advantage of using a refresh_token
?
Upvotes: 3
Views: 846
Reputation: 4701
The access token is, in theory, more in play. It could be in a browser, on the server-side of a client, on the authorization server or on a resource server. The access token will be attached to every API request whereas the refresh token should be used much less frequently.
A couple quotations from the web...
Unlike access tokens, refresh tokens are intended for use only with authorization servers and are never sent to resource servers. https://www.rfc-editor.org/rfc/rfc6749#section-10.4
[Refresh tokens] are usually subject to strict storage requirements to ensure they are not leaked. https://auth0.com/learn/refresh-tokens/
Basically, if we only had access token, the attack surface would be greater.
Upvotes: 2