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> {
|
async logout(_: unknown, __: unknown, context: GraphQLContext): Promise<LogoutResponse> {
|
||||||
try {
|
try {
|
||||||
// Ici, vous pouvez ajouter des logiques de nettoyage si nécessaire
|
// Supprimer le PAT dans Logto si présent
|
||||||
// Par exemple, supprimer le token d'accès personnel du cache
|
if (context.personalAccessToken && context.userId) {
|
||||||
if (context.personalAccessToken) {
|
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);
|
context.patCache.remove(context.personalAccessToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user