feat: ignore cors during connectivity check #833
Merged
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.
The issue
Regarding the connectivity check, its purpose is to detect if a url is accessible and if it is, redirect to the idp login page.
I found through some testing that the CORS policy enforcement was likely causing lots of false negatives i.e. saying it couldn't connect when the user actually could.
The fix
We can use fetch() with
no-cors
mode, this returns an opaque response i.e. no http code, body, etc.. it only returns yes or no did it connect which is exactly what we need.See https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#making_cross-origin_requests for info re
no-cors
Testing
Manual testing - accessible site resolves the fetch promise, inaccessible site returns error where previously a accessible site would return an error because of cors