Fix httpClient
should not throw if user is disconnected
#11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
If the token cannot be acquired from the cache (e.g. because it is no longer valid or because the user is disconnected), calling
auth0Client.getTokenSilently()
inhttpClient
will throw anError
(e.g. aLogin required
error).The problem is that this will block the actual request from firing, and it will not necessarily trigger a new login attempt since
authProvider.checkError()
won't throw in that case.Solution
Catch any error thrown while calling
auth0Client.getTokenSilently()
inhttpClient
, and rely on the fact that the API will then be called without theAuthorization
header, which should return a 401 or 403 status code (if the endpoint is protected) which should activateauthProvider.checkError()
.