1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-19 05:09:43 +02:00

fix: Fix OIDC authentication error when redirecting from another tab
Some checks are pending
Build and push Docker DEV image / build ([self-hosted arm64], linux/arm/v7) (push) Waiting to run
Build and push Docker DEV image / build ([self-hosted arm64], linux/arm64) (push) Waiting to run
Build and push Docker DEV image / build ([self-hosted x64], linux/amd64) (push) Waiting to run
Build and push Docker DEV image / merge (push) Blocked by required conditions
Build and push Docker DEV image / rerun-failed-jobs (push) Blocked by required conditions

Closes #650
This commit is contained in:
Maksim Eltyshev 2024-03-26 14:07:07 +01:00
parent 1a5a853fa3
commit 9d95ed6c41

View file

@ -33,10 +33,10 @@ export function* authenticateUsingOidc() {
const oidcConfig = yield select(selectors.selectOidcConfig); const oidcConfig = yield select(selectors.selectOidcConfig);
const state = nanoid(); const state = nanoid();
window.sessionStorage.setItem('oidc-state', state); window.localStorage.setItem('oidc-state', state);
const nonce = nanoid(); const nonce = nanoid();
window.sessionStorage.setItem('oidc-nonce', nonce); window.localStorage.setItem('oidc-nonce', nonce);
let redirectUrl = `${oidcConfig.authorizationUrl}`; let redirectUrl = `${oidcConfig.authorizationUrl}`;
redirectUrl += `&state=${encodeURIComponent(state)}`; redirectUrl += `&state=${encodeURIComponent(state)}`;
@ -49,11 +49,11 @@ export function* authenticateUsingOidcCallback() {
// https://github.com/plankanban/planka/issues/511#issuecomment-1771385639 // https://github.com/plankanban/planka/issues/511#issuecomment-1771385639
const params = new URLSearchParams(window.location.hash.substring(1) || window.location.search); const params = new URLSearchParams(window.location.hash.substring(1) || window.location.search);
const state = window.sessionStorage.getItem('oidc-state'); const state = window.localStorage.getItem('oidc-state');
window.sessionStorage.removeItem('oidc-state'); window.localStorage.removeItem('oidc-state');
const nonce = window.sessionStorage.getItem('oidc-nonce'); const nonce = window.localStorage.getItem('oidc-nonce');
window.sessionStorage.removeItem('oidc-nonce'); window.localStorage.removeItem('oidc-nonce');
yield put(replace(Paths.LOGIN)); yield put(replace(Paths.LOGIN));