1. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to: authenticate a client browser via an identity provider; grant permission for an service to access data and/or services of the identity provider; redirect, with the identity provider, the client browser to an endpoint provided by the service provider; send an authorization code, with the identity provider, during the redirect, the authorization code to be exchanged, by the service provider, for one or more refresh tokens and access to the data and/or services; wherein the client browser establishes communications with the service provider, the service provider prompts the user to set-up a passcode before obtaining the tokens and once the passcode is provided, and after the service provider obtains the tokens from the identity provider, the service provider encrypts the refresh token(s) by using the passcode and/or by a private key generated by the service provider; and wherein the encrypted token is returned to the client browser to be saved locally in local storage of the client browser.