fix: store oidc redirect_uri in session for parity
This commit is contained in:
parent
0f92f09796
commit
bd11453593
@ -34,13 +34,19 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
|||||||
const codeVerifier = session.get('oidc_code_verif');
|
const codeVerifier = session.get('oidc_code_verif');
|
||||||
const state = session.get('oidc_state');
|
const state = session.get('oidc_state');
|
||||||
const nonce = session.get('oidc_nonce');
|
const nonce = session.get('oidc_nonce');
|
||||||
|
const redirectUri = session.get('oidc_redirect_uri');
|
||||||
|
|
||||||
if (!codeVerifier || !state || !nonce) {
|
if (!codeVerifier || !state || !nonce) {
|
||||||
return send({ error: 'Missing OIDC state' }, { status: 400 });
|
return send({ error: 'Missing OIDC state' }, { status: 400 });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reconstruct the redirect URI using the query parameters
|
||||||
|
// and the one we saved in the session
|
||||||
|
const flowRedirectUri = new URL(redirectUri);
|
||||||
|
flowRedirectUri.search = url.search;
|
||||||
|
|
||||||
const flowOptions = {
|
const flowOptions = {
|
||||||
redirect_uri: request.url,
|
redirect_uri: flowRedirectUri.toString(),
|
||||||
codeVerifier,
|
codeVerifier,
|
||||||
state,
|
state,
|
||||||
nonce: nonce === '<none>' ? undefined : nonce,
|
nonce: nonce === '<none>' ? undefined : nonce,
|
||||||
|
|||||||
@ -30,6 +30,7 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
|||||||
session.set('oidc_code_verif', data.codeVerifier);
|
session.set('oidc_code_verif', data.codeVerifier);
|
||||||
session.set('oidc_state', data.state);
|
session.set('oidc_state', data.state);
|
||||||
session.set('oidc_nonce', data.nonce);
|
session.set('oidc_nonce', data.nonce);
|
||||||
|
session.set('oidc_redirect_uri', redirectUri)
|
||||||
|
|
||||||
return redirect(data.url, {
|
return redirect(data.url, {
|
||||||
status: 302,
|
status: 302,
|
||||||
|
|||||||
@ -5,6 +5,7 @@ export type SessionData = {
|
|||||||
oidc_state: string;
|
oidc_state: string;
|
||||||
oidc_code_verif: string;
|
oidc_code_verif: string;
|
||||||
oidc_nonce: string;
|
oidc_nonce: string;
|
||||||
|
oidc_redirect_uri: string;
|
||||||
agent_onboarding: boolean;
|
agent_onboarding: boolean;
|
||||||
user: {
|
user: {
|
||||||
subject: string;
|
subject: string;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user