Let’s remove the account linking from the equation for a moment. We have two flows:
- User logs in with Google and checks all the required permissions. We retrieve the Google refresh token via the
GET /v2/users/{id}endpoint immediately following the initial login. - User logs in with Google and does not check the required permissions. Then, when the user is in the dashboard, we inform them that they need to check the required permissions in order to use all the features of the dashboard.
- That’s the moment we use
prompt=consent,access_type=offline, also, informing theconnection=google-oauth2parameter. This forces the consent flow to be performed again. We receive the refresh token in this case.
- That’s the moment we use
Now, what I mentioned above is 100% true, and it works as expected only when a single Google account is used. However, when we link the Google account as a secondary account, the refresh token is not stored in the Auth0 side.
One workaround for this use case is to have Google Social Connection as the primary account. It does not make sense, though. What if I add Facebook support? Apple?
I’m building a SaaS product and planned to subscribe to the Essentials plan. Auth0 says it supports account linking, but the product is incomplete: it says one thing, and does another. The product is impracticable, it does not work, and Auth0 does not have a plan to fix it.
Token Vault with Connected Accounts is an alternative. However, how do I trust this new product if account linking is not working? I feel frustrated.