@dbeauyat/users
v1.0.5
Published
Module Node.js pour la gestion d'utilisateurs avec stockage Redis et hachage Argon2.
Readme
@dbeauyat/users
Module Node.js pour la gestion d'utilisateurs avec stockage Redis et hachage Argon2.
Installation
npm install @dbeauyat/usersConfiguration
Le module charge automatiquement config.json5 au démarrage. Les paramètres principaux :
| Paramètre | Type | Description |
|-----------|------|-------------|
| brokerUrl | string | URL du broker MQTT (ex: mqtt://127.0.0.1:1883) |
| listenTopic | string | Topic pour les nouvelles demandes d'authentification |
| qos | number | QoS du broker MQTT |
| clientId | string | Identifiant client du broker |
| DBs.redis.host | string | Host Redis (défaut: 127.0.0.1) |
| DBs.redis.port | number | Port Redis (défaut: 6379) |
| DBs.redis.username | string | Username Redis |
| DBs.redis.password | string | Password Redis |
Usage
import { createUser, retrieveUser, verifyPassword } from '@dbeauyat/users';
// Créer un utilisateur
await createUser('alice', 'motdepasse', 'Alice Dupont', true);
// Récupérer un utilisateur
const user = await retrieveUser('alice');
// Vérifier un mot de passe
const valid = await verifyPassword('alice', 'motdepasse');API
createUser(username, password, fullname, enabled)
Crée un nouvel utilisateur. Le mot de passe est haché avec Argon2.
| Paramètre | Type | Obligatoire | Description |
|-----------|------|-------------|-------------|
| username | string | Oui | Nom d'utilisateur unique |
| password | string | Oui | Mot de passe (haché automatiquement) |
| fullname | string | Oui | Nom complet |
| enabled | boolean | Non | État initial (défaut: true) |
Retourne { success: true, username }.
retrieveUser(username)
Récupère les informations d'un utilisateur.
| Paramètre | Type | Description |
|-----------|------|-------------|
| username | string | Nom d'utilisateur |
Retourne un objet utilisateur ou null si non trouvé.
verifyPassword(username, password)
Vérifie qu'un mot de passe correspond au hachage stocké.
| Paramètre | Type | Description |
|-----------|------|-------------|
| username | string | Nom d'utilisateur |
| password | string | Mot de passe à vérifier |
Retourne { valid: true } ou { valid: false, reason: 'USER_NOT_FOUND' \| 'WRONG_PASSWORD' }.
updateUser(username, updates)
Met à jour un champ ou plusieurs champs d'un utilisateur.
| Paramètre | Type | Description |
|-----------|------|-------------|
| username | string | Nom d'utilisateur |
| updates | object | Objet clé-valeur des champs à mettre à jour |
Retourne { success: true }.
updatePassword(username, newPassword)
Change le mot de passe d'un utilisateur. Le nouveau mot de passe est haché avec Argon2.
| Paramètre | Type | Description |
|-----------|------|-------------|
| username | string | Nom d'utilisateur |
| newPassword | string | Nouveau mot de passe |
Retourne { success: true }.
deleteUser(username)
Supprime un utilisateur.
| Paramètre | Type | Description |
|-----------|------|-------------|
| username | string | Nom d'utilisateur à supprimer |
Retourne { success: true }.
enableUser(username) / disableUser(username)
Active ou désactive un utilisateur.
| Paramètre | Type | Description |
|-----------|------|-------------|
| username | string | Nom d'utilisateur |
Retourne { success: true }.
Stockage
Les données sont stockées dans Redis au format JSON sous la clé fimecov2:ba:users:<username>.
Licence
ISC
