ui: force uses to sign-in page to fix SSO CSRF cookie issue (PROJQUAY… #865
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.
…-2340)
This is because we use two different CSRF tokens for normal API calls
and OAUTH calls. The oauth token is set by the
/externallogin/<provider>
endpoint and is set as an encrypted flaskcooke. However, v1 api calls set the cookie as a JWT token. The order of
API calls now makes a difference because the cookie from one gets
overwritten by the other.
When making the oauth call to the external provider. If we have the
wrong session cookie, the CSRF validation fails when the callback URL is
sent to the backend with the cookie containing the wrong CSRF token.
To fix this we must force users to go to the
/signin
page which makessure that the last API call that happens is the
/externallogin/<provider>
which sets the correct cooke beforeredirecting to the external provider