removed personal access token on logto

This commit is contained in:
Alexandre Bove 2025-07-29 10:22:32 +02:00
parent ac3161c7b9
commit f1f1b45c91

View File

@ -737,9 +737,37 @@ export const resolvers = {
async logout(_: unknown, __: unknown, context: GraphQLContext): Promise<LogoutResponse> {
try {
// Ici, vous pouvez ajouter des logiques de nettoyage si nécessaire
// Par exemple, supprimer le token d'accès personnel du cache
if (context.personalAccessToken) {
// Supprimer le PAT dans Logto si présent
if (context.personalAccessToken && context.userId) {
try {
const m2mToken = await getLogtoAccessToken();
// Lister les PATs pour l'utilisateur
const listResponse = await axios.get(
`${process.env.LOGTO_ENDPOINT}/api/users/${context.userId}/personal-access-tokens`,
{
headers: {
Authorization: `Bearer ${m2mToken}`,
"Content-Type": "application/json",
},
}
);
const pats = listResponse.data;
// Trouver le PAT à supprimer par sa valeur
const patToDelete = pats.find((pat: { value: string }) => pat.value === context.personalAccessToken);
if (patToDelete && patToDelete.name) {
await axios.delete(
`${process.env.LOGTO_ENDPOINT}/api/users/${context.userId}/personal-access-tokens/${patToDelete.name}`,
{
headers: {
Authorization: `Bearer ${m2mToken}`,
"Content-Type": "application/json",
},
}
);
}
} catch (error) {
console.error("Erreur lors de la suppression du PAT dans Logto:", error);
}
context.patCache.remove(context.personalAccessToken);
}