removed personal access token on logto
This commit is contained in:
parent
ac3161c7b9
commit
f1f1b45c91
@ -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);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user