In the Azure B2C documentation you have this information about silently acquiring new access tokens when the previous one expired.
ID tokens and access tokens both expire after a short period of time. Your app must be prepared to refresh these tokens periodically. To refresh either type of token, perform the same hidden iframe request we used in an earlier example, by using the prompt=none parameter to control Azure AD steps. To receive a new id_token value, be sure to use response_type=id_token and scope=openid, and a nonce parameter.
Is there a way to do this without an iFrame?