fix callback for password, passkey

This commit is contained in:
peintnermax
2023-08-30 17:06:27 +02:00
parent 5da274cecf
commit e475418ce1
3 changed files with 36 additions and 5 deletions

View File

@@ -47,13 +47,16 @@ export async function GET(request: NextRequest) {
sessions = await loadSessions(ids); sessions = await loadSessions(ids);
} else { } else {
console.info("No session cookie found."); console.info("No session cookie found.");
return []; sessions = [];
} }
// use existing session and hydrate it for oidc // use existing session and hydrate it for oidc
if (authRequest && sessions.length) { if (authRequest && sessions.length) {
// if some accounts are available for selection and select_account is set // if some accounts are available for selection and select_account is set
if (authRequest && authRequest.prompt === Prompt.PROMPT_SELECT_ACCOUNT) { if (
authRequest &&
authRequest.prompt.includes(Prompt.PROMPT_SELECT_ACCOUNT)
) {
const accountsUrl = new URL("/accounts", request.url); const accountsUrl = new URL("/accounts", request.url);
if (authRequest?.id) { if (authRequest?.id) {
accountsUrl.searchParams.set("authRequestId", authRequest?.id); accountsUrl.searchParams.set("authRequestId", authRequest?.id);
@@ -105,6 +108,10 @@ export async function GET(request: NextRequest) {
const loginNameUrl = new URL("/loginname", request.url); const loginNameUrl = new URL("/loginname", request.url);
if (authRequest?.id) { if (authRequest?.id) {
loginNameUrl.searchParams.set("authRequestId", authRequest?.id); loginNameUrl.searchParams.set("authRequestId", authRequest?.id);
if (authRequest.loginHint) {
loginNameUrl.searchParams.set("loginName", authRequest.loginHint);
loginNameUrl.searchParams.set("submit", "true"); // autosubmit
}
} }
return NextResponse.redirect(loginNameUrl); return NextResponse.redirect(loginNameUrl);

View File

@@ -153,8 +153,20 @@ export default function LoginPasskey({
userHandle: coerceToBase64Url(userHandle, "userHandle"), userHandle: coerceToBase64Url(userHandle, "userHandle"),
}, },
}; };
return submitLogin(data).then(() => { return submitLogin(data).then((resp) => {
return router.push(`/accounts`); return router.push(
`/signedin?` +
new URLSearchParams(
authRequestId
? {
loginName: resp.factors.user.loginName,
authRequestId,
}
: {
loginName: resp.factors.user.loginName,
}
)
);
}); });
} else { } else {
setLoading(false); setLoading(false);

View File

@@ -76,7 +76,19 @@ export default function PasswordForm({
}) })
); );
} else { } else {
return router.push(`/accounts`); return router.push(
`/signedin?` +
new URLSearchParams(
authRequestId
? {
loginName: resp.factors.user.loginName,
authRequestId,
}
: {
loginName: resp.factors.user.loginName,
}
)
);
} }
}); });
} }