0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-02-17 22:04:19 -05:00

refactor(core): fix etag

This commit is contained in:
Gao Sun 2023-03-02 00:44:33 +08:00
parent 2747a1064e
commit 07e04eac55
No known key found for this signature in database
GPG key ID: 13EBE123E4773688

View file

@ -17,51 +17,57 @@ export default function wellKnownRoutes<T extends AnonymousRouter>(
} = libraries;
if (id === adminTenantId) {
router.get('/.well-known/endpoints/:tenantId', async (ctx, next) => {
if (!ctx.params.tenantId) {
throw new RequestError('request.invalid_input');
}
router.get(
'/.well-known/endpoints/:tenantId',
async (ctx, next) => {
if (!ctx.params.tenantId) {
throw new RequestError('request.invalid_input');
}
ctx.body = {
user: getTenantEndpoint(ctx.params.tenantId, EnvSet.values),
};
return next();
},
koaBodyEtag()
);
}
router.get(
'/.well-known/sign-in-exp',
async (ctx, next) => {
const [signInExperience, logtoConnectors] = await Promise.all([
getSignInExperience(),
getLogtoConnectors(),
]);
const forgotPassword = {
phone: logtoConnectors.some(({ type }) => type === ConnectorType.Sms),
email: logtoConnectors.some(({ type }) => type === ConnectorType.Email),
};
const socialConnectors = signInExperience.socialSignInConnectorTargets.reduce<
Array<ConnectorMetadata & { id: string }>
>((previous, connectorTarget) => {
const connectors = logtoConnectors.filter(
({ metadata: { target } }) => target === connectorTarget
);
return [
...previous,
...connectors.map(({ metadata, dbEntry: { id } }) => ({ ...metadata, id })),
];
}, []);
ctx.body = {
user: getTenantEndpoint(ctx.params.tenantId, EnvSet.values),
...signInExperience,
socialConnectors,
forgotPassword,
};
return next();
});
}
router.get('/.well-known/sign-in-exp', async (ctx, next) => {
const [signInExperience, logtoConnectors] = await Promise.all([
getSignInExperience(),
getLogtoConnectors(),
]);
const forgotPassword = {
phone: logtoConnectors.some(({ type }) => type === ConnectorType.Sms),
email: logtoConnectors.some(({ type }) => type === ConnectorType.Email),
};
const socialConnectors = signInExperience.socialSignInConnectorTargets.reduce<
Array<ConnectorMetadata & { id: string }>
>((previous, connectorTarget) => {
const connectors = logtoConnectors.filter(
({ metadata: { target } }) => target === connectorTarget
);
return [
...previous,
...connectors.map(({ metadata, dbEntry: { id } }) => ({ ...metadata, id })),
];
}, []);
ctx.body = {
...signInExperience,
socialConnectors,
forgotPassword,
};
return next();
});
router.use(koaBodyEtag());
},
koaBodyEtag()
);
}