feat: support for prompt=login in oidc flow

This commit is contained in:
Stavros
2026-06-19 12:45:07 +03:00
parent 6ccc894570
commit dbc9b1eb5c
6 changed files with 30 additions and 10 deletions
+2
View File
@@ -6,6 +6,7 @@ type ScreenParams = {
oidc_ticket?: string;
oidc_scope?: string;
oidc_name?: string;
oidc_login?: boolean;
};
const zodScreenParams = z.object({
@@ -14,6 +15,7 @@ const zodScreenParams = z.object({
oidc_ticket: z.string().optional(),
oidc_scope: z.string().optional(),
oidc_name: z.string().optional(),
oidc_login: z.stringbool().optional(),
});
export function useScreenParams(params: URLSearchParams): ScreenParams {
+1 -1
View File
@@ -119,7 +119,7 @@ export const AuthorizePage = () => {
);
}
if (!auth.authenticated) {
if (!auth.authenticated || screenParams.oidc_login) {
return <Navigate to={`/login${compiledParams}`} replace />;
}
+5 -2
View File
@@ -63,7 +63,10 @@ export const LoginPage = () => {
const searchParams = new URLSearchParams(search);
const screenParams = useScreenParams(searchParams);
const compiledParams = recompileScreenParams(screenParams);
const compiledParams = recompileScreenParams({
...screenParams,
oidc_login: false,
});
const loginForUrl = useLoginFor({
login_for: screenParams.login_for,
compiledParams,
@@ -196,7 +199,7 @@ export const LoginPage = () => {
};
}, [redirectTimer, redirectButtonTimer]);
if (auth.authenticated) {
if (auth.authenticated && !screenParams.oidc_login) {
return <Navigate to={loginForUrl} replace />;
}