diff --git a/package.json b/package.json index b5c7cc1..5c8babc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "harmony-back", - "version": "0.13.17", + "version": "0.13.18", "private": true, "description": "A Strapi application", "scripts": { diff --git a/src/extensions/users-permissions/strapi-server.ts b/src/extensions/users-permissions/strapi-server.ts index 1bbb3e9..e3a992a 100644 --- a/src/extensions/users-permissions/strapi-server.ts +++ b/src/extensions/users-permissions/strapi-server.ts @@ -250,8 +250,21 @@ module.exports = (plugin) => { const stats = await getUserStats(ctx.state.user.id); + // `strapi.db.query` renvoie la ligne brute : sans cette omission, /users/me + // exposait au navigateur le hash du mot de passe et les jetons de + // réinitialisation et de confirmation. + // On retire ces champs explicitement plutôt que de passer par + // `sanitizeUser` : le sanitizer de l'API de contenu retirerait aussi les + // relations peuplées que le front consomme ici. + const { + password: _password, + resetPasswordToken: _resetPasswordToken, + confirmationToken: _confirmationToken, + ...safeUser + } = JSON.parse(JSON.stringify(fullUser)); + const result = { - ...JSON.parse(JSON.stringify(fullUser)), + ...safeUser, stats, };