0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-03-31 22:51:25 -05:00

fix(core): settings api should not throw session not found error ()

settings api shouyld not throw session not found error
This commit is contained in:
simeng-li 2022-06-21 08:56:01 +08:00 committed by GitHub
parent 3e1c040ebe
commit e0793facb9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2,7 +2,7 @@ import { ConnectorMetadata } from '@logto/connector-types';
import { SignInMode } from '@logto/schemas';
import { adminConsoleApplicationId, adminConsoleSignInMethods } from '@logto/schemas/lib/seeds';
import etag from 'etag';
import { Provider } from 'oidc-provider';
import { Provider, errors } from 'oidc-provider';
import { getConnectorInstances } from '@/connectors';
import { findDefaultSignInExperience } from '@/queries/sign-in-experience';
@ -20,7 +20,14 @@ export default function signInSettingsRoutes<T extends AnonymousRouter>(
const [signInExperience, connectorInstances, interaction] = await Promise.all([
findDefaultSignInExperience(),
getConnectorInstances(),
provider.interactionDetails(ctx.req, ctx.res),
provider.interactionDetails(ctx.req, ctx.res).catch((error: unknown) => {
// Should not block if interaction is not found
if (error instanceof errors.SessionNotFound) {
return null;
}
throw error;
}),
]);
const socialConnectors = signInExperience.socialSignInConnectorTargets.reduce<
@ -37,12 +44,8 @@ export default function signInSettingsRoutes<T extends AnonymousRouter>(
];
}, []);
const {
params: { client_id },
} = interaction;
// Hard code AdminConsole sign-in methods settings.
if (client_id === adminConsoleApplicationId) {
if (interaction?.params.client_id === adminConsoleApplicationId) {
ctx.body = {
...signInExperience,
signInMethods: adminConsoleSignInMethods,