OAuth2 update tokens are not intended for mobile clients. Using update tokens requires client credentials that cannot be safely stored in a mobile application.
Update tokens are used from confidential clients (for example, server-side web applications). They are often updated when used (the server sends new access and a new update token). Unlike access tokens, an update token is sent only to the authorization server, and not to the resource server (API).
Regarding your authorization flow. Step 2 is the weak link of IMO. You allow the client to use the expired token to generate a new access token. Therefore, if I find my phone and get access to the device, it will allow me to get a new access token and impersonate you.
You can force the client to renew the token every 15 minutes, but then you need to determine what happens if the application closes or the device turns off? Can I re-authenticate a user?
source share