Yup that is correct.
And best advice is to use your own Auth loop not a third parties, since a third parties won’t return the refresh token to use. And when it dies the caster has to stop and go and reauth.
Where as with this you just reauth and LISTEN again
So you don’t have to full restart the process.
Just UNLISTEN and LISTEN with the new token.
Normally you’d probably want to refresh with 30 minutes left rather than let it go to the last second
Just remember when you refresh you may get a new refresh token so remember to store that in case the refresh token was updated!