Introduction
Gérez les utilisateurs enregistrés — récupérez les profils, mettez à jour les données et gérez l'état des comptes.
Plus d'informations sur la gestion des utilisateurs dans le panneau d'administration OneEntry : https://doc.oneentry.cloud/docs/category/users
🎯 Que fait ce module ?
Le module Users vous permet de gérer les utilisateurs enregistrés. Dans la plateforme OneEntry, il existe les outils nécessaires pour travailler avec les utilisateurs enregistrés.
📖 Explication Simple
Chaque application a besoin d'une gestion des utilisateurs :
- 📝 Profils Utilisateurs - Gérez les informations des utilisateurs
- 💾 Données Utilisateur Personnalisées - Stockez des données spécifiques à l'application (objet d'état)
- 🔍 Recherche d'Utilisateurs - Recherchez et filtrez les utilisateurs
✨ Concepts Clés
Qu'est-ce qu'un Utilisateur ?
Un Utilisateur est un compte enregistré dans votre application :
- Informations de Base - Nom, email, téléphone
- Authentification - Stockage sécurisé des mots de passe
- Objet d'État - Données personnalisées de l'application
- Horodatages - Date d'inscription, dernière connexion
- Statut - Actif, inactif, bloqué
- Permissions - Rôles et niveaux d'accès des utilisateurs
Structure de l'Utilisateur
Chaque utilisateur a cette structure :
{
id: 8, // User ID
identifier: 'test@test.ru', // User identifier (email/login)
authProviderIdentifier: 'email', // Auth provider type
formIdentifier: 'reg', // Registration form identifier
formData: [ // User profile data
{ marker: 'name_reg', type: 'string', value: 'Ivan' },
{ marker: 'phone_reg', type: 'string', value: '+19258382556' },
],
groups: [1], // User groups for permissions
state: {}, // Custom application data
moduleFormConfigs: [], // Additional form configurations
total: "1" // Total count (for pagination)
}
Champs Clés :
id- Identifiant unique de l'utilisateuridentifier- Identifiant de connexion de l'utilisateur (email, téléphone, nom d'utilisateur)authProviderIdentifier- Méthode d'authentification utilisée (email, téléphone, etc.)formData- Tableau de champs de formulaire avec les informations de profil de l'utilisateurgroups- Tableau d'IDs de groupes pour le contrôle d'accèsstate- Objet JSON personnalisé pour les données spécifiques à l'application
Obtenir un utilisateur avec des données d'état personnalisées
Avantages :
- 🔒 Sécurisé - Hachage des mots de passe, authentification sécurisée
- 📋 Validé - Validation des emails et des données
- 🔄 Authentifié - Sessions basées sur des tokens
- 💾 Persistant - Données stockées dans la base de données
Objet d'État de l'Utilisateur
Vous pouvez stocker les données nécessaires au fonctionnement de votre application dans un objet d'état. Lors du changement d'utilisateur, ajoutez les données nécessaires à l'état. Lorsque les données de l'utilisateur sont ensuite reçues, elles contiendront un objet d'état.
Un exemple dans lequel nous ajoutons des informations à l'utilisateur sur le nombre de commandes qu'il a passées. Ajoutez un champ "orderCount" avec la valeur à l'objet d'état.
L'objet d'état est un stockage de données personnalisé par utilisateur :
| Cas d'Utilisation | Exemple d'État | Description |
|---|---|---|
| E-commerce | { orderCount: 5, totalSpent: 499.99 } | Suivre l'historique des achats |
| Site de Contenu | { articlesRead: 25, bookmarks: [1,2,3] } | Suivre la consommation de contenu |
| Application Sociale | { postsCount: 42, followers: 150 } | Suivre les métriques sociales |
| Jeux | { level: 15, score: 9500, achievements: [...] } | Suivre la progression du jeu |
| SaaS | { plan: 'premium', usage: 75 } | Suivre les données d'abonnement |
Flux de Travail de l'Utilisateur
1. User fills registration form
(Email, password, name)
↓
2. createUser() called
(OneEntry validates and hashes password)
↓
3. User account created
(Stored in database)
↓
4. User logs in
(authenticateUser() verifies credentials)
↓
5. Authentication token returned
(Used for subsequent requests)
↓
6. Application updates user state
(Custom data like orderCount)
↓
7. User data fetched as needed
(getUserById() with current state)
Pourquoi Utiliser le Module Utilisateurs ?
| Avantage | Description |
|---|---|
| Authentification Sécurisée | Hachage des mots de passe, gestion des tokens |
| Gestion des Utilisateurs | Lire, mettre à jour, supprimer des utilisateurs |
| Stockage de Données Personnalisées | Objet d'état pour les données spécifiques à l'application |
| Validation des Emails | Vérification automatique du format des emails |
| Prévention des Doublons | Empêche l'enregistrement d'emails en double |
| Gestion des Sessions | Authentification basée sur des tokens |
📋 Ce Que Vous Devez Savoir
Fournisseur d'Autorisation
Les utilisateurs dans OneEntry sont gérés par un système de fournisseur d'autorisation qui gère les mécanismes d'enregistrement et d'authentification.
Points Clés :
- Les utilisateurs s'inscrivent via des formulaires configurés dans le panneau d'administration OneEntry
- Chaque utilisateur est associé à un fournisseur d'authentification (email, téléphone, etc.)
- Les données des utilisateurs sont stockées dans des champs de formulaire définis par
formData - Des métadonnées supplémentaires sont stockées dans l'objet
state
L'Objet d'État de l'Utilisateur est Flexible
L'objet d'état peut stocker n'importe quelles données JSON personnalisées
Meilleures pratiques :
- Stockez uniquement des données spécifiques à l'application
- Gardez l'objet d'état organisé avec des objets imbriqués
- Mettez à jour l'ensemble de l'objet d'état (répandez les données existantes)
- Ne stockez pas de données sensibles dans l'état
Sécurité des Mots de Passe
OneEntry gère automatiquement la sécurité des mots de passe
Votre responsabilité :
- Appliquez les exigences de mot de passe (longueur, complexité)
- Validez le mot de passe côté client avant l'envoi
- Ne jamais enregistrer les mots de passe
- Utilisez HTTPS pour toutes les requêtes d'authentification
Gestion des Tokens d'Authentification
Stockez et utilisez les tokens d'authentification de manière sécurisée
Meilleures pratiques pour les tokens :
- Stockez dans des cookies HTTP uniquement lorsque cela est possible
- Utilisez des temps d'expiration courts (1-2 heures)
- Implémentez des tokens de rafraîchissement pour les longues sessions
- Effacez le token lors de la déconnexion
- Ne jamais exposer les tokens dans les URLs
Validation de l'Inscription des Utilisateurs
Validez toujours les entrées des utilisateurs avant l'inscription
Mise à Jour de l'État de l'Utilisateur en Toute Sécurité
Préservez toujours l'état existant lors de la mise à jour :
// ❌ Bad - Overwrites entire state
const userstate = {
orderCount: 1
}
// ✅ Good - Preserve existing state
const userstate = {
...user.state, // Spread existing state
orderCount: (user.state.orderCount || 0) + 1 // Update specific field
}
Prévention des Emails Doublons
OneEntry empêche automatiquement l'enregistrement d'emails en double
Meilleure pratique : Vérifiez le statut d'erreur et affichez un message convivial.
Pagination des Utilisateurs
Pour de grandes bases d'utilisateurs, effectuez toujours une pagination lors de la récupération de plusieurs utilisateurs
💡 Notes Importantes
Autorisation Requise
La plupart des méthodes utilisateur nécessitent une autorisation via le module AuthProvider. Assurez-vous d'authentifier l'utilisateur d'abord avant d'appeler les méthodes de gestion des utilisateurs.
Données de Formulaire Utilisateur
Les données utilisateur sont structurées selon les formulaires configurés dans le panneau d'administration OneEntry :
- Chaque utilisateur a un
formIdentifierqui fait référence au formulaire d'inscription utilisé - Les données utilisateur sont stockées dans le tableau
formDataavec des marqueurs, types et valeurs - Les types de champs pris en charge incluent : chaîne, entier, flottant, date, dateHeure, heure, texte, texteAvecEn-tête, image, groupeD'images, fichier, boutonRadio, liste, entité, intervalleDeTemps
Directives pour l'Objet d'État
Meilleures pratiques pour l'objet d'état :
- Stockez uniquement des données spécifiques à l'application
- Gardez l'état organisé avec des objets imbriqués
- Mettez à jour l'ensemble de l'état (répandez les données existantes)
- Ne stockez pas de données sensibles (mots de passe, tokens)
- Ne stockez pas de grandes données binaires
- Utilisez des conventions de nommage cohérentes
Notifications Push
Utilisez addFCMToken() et deleteFCMToken() pour gérer les tokens de Firebase Cloud Messaging pour envoyer des notifications push aux utilisateurs.
Données de Notification
Lors de la mise à jour des utilisateurs, vous pouvez fournir un objet notificationData contenant :
email- Adresse email pour les notificationsphonePush- Tableau de numéros de téléphone pour les notifications pushphoneSMS- Numéro de téléphone pour les notifications SMS
📊 Tableau de Référence Rapide
| Méthode | Description | Cas d'Utilisation |
|---|---|---|
| getUser() | Obtenir les données de l'utilisateur autorisé | Récupérer le profil utilisateur actuel |
| updateUser() | Mettre à jour les informations de l'utilisateur | Mises à jour de profil, changements d'état |
| archiveUser() | Archiver le compte utilisateur | Suppression douce du compte utilisateur |
| deleteUser() | Supprimer définitivement l'utilisateur | Suppression définitive du compte utilisateur |
| addFCMToken() | Ajouter un token FCM pour les notifications push | Activer les notifications push |
| deleteFCMToken() | Supprimer le token FCM | Désactiver les notifications push |
| getCart() | Obtenir le panier de l'utilisateur ou de l'invité | Lire le panier actuel |
| setCart() | Remplacer l'ensemble du panier | Synchroniser un panier côté client |
| addCartItem() | Ajouter un article au panier | Action "Ajouter au panier" |
| removeCartItem() | Retirer un article du panier | Action "Retirer du panier" |
| getWishlist() | Obtenir la liste de souhaits de l'utilisateur ou de l'invité | Lire la liste de souhaits actuelle |
| setWishlist() | Remplacer l'ensemble de la liste de souhaits | Synchroniser une liste de souhaits côté client |
| addWishlistItem() | Ajouter un article à la liste de souhaits | Action "Ajouter à la liste de souhaits" |
| removeWishlistItem() | Retirer un article de la liste de souhaits | Action "Retirer de la liste de souhaits" |
🛒 Panier & Liste de Souhaits
Les méthodes de panier et de liste de souhaits fonctionnent pour les utilisateurs autorisés et les invités. Pour un invité, le SDK envoie un en-tête x-guest-id afin que le panier/la liste de souhaits soit lié au bon visiteur anonyme - voir Mode Invité. Une fois qu'un invité se connecte, les mêmes méthodes fonctionnent sur les données de l'utilisateur authentifié.
Ces méthodes alimentent également les blocs de personnalisation (comme complément de panier, similaires au panier et similaires à la liste de souhaits) et peuvent être combinées avec le suivi d'activité utilisateur.
❓ Questions Fréquemment Posées (FAQ)
Qu'est-ce que l'objet d'état utilisateur et comment devrais-je l'utiliser ?
L'objet d'état est un stockage JSON flexible pour les données utilisateur spécifiques à l'application. Utilisez-le pour suivre des métriques personnalisées comme le nombre de commandes, les préférences ou la progression. Répandez toujours l'état existant lors de la mise à jour pour éviter d'écraser d'autres données.
Comment mettre à jour les informations du profil utilisateur ?
Utilisez updateUser() pour modifier les données du profil utilisateur. Vous pouvez mettre à jour les champs de données de formulaire, les paramètres de notification et l'objet d'état. N'oubliez pas d'authentifier l'utilisateur d'abord en utilisant le module AuthProvider.
Quelle est la différence entre archiveUser() et deleteUser() ?
archiveUser() est une suppression douce qui cache l'utilisateur mais préserve les données (peut être restauré). deleteUser() supprime définitivement l'utilisateur et toutes les données associées (ne peut pas être annulé). Utilisez l'archivage sauf si vous avez besoin d'une suppression complète des données.
Comment gérer les notifications push pour les utilisateurs ?
Utilisez addFCMToken() pour enregistrer un token Firebase Cloud Messaging pour l'utilisateur. Cela permet d'envoyer des notifications push à leurs appareils. Utilisez deleteFCMToken() lorsqu'ils se déconnectent ou désactivent les notifications.
Puis-je stocker des données sensibles dans l'objet d'état utilisateur ?
Non ! Ne stockez jamais de mots de passe, tokens, numéros de carte de crédit ou autres données sensibles dans l'objet d'état. Il n'est pas crypté spécifiquement pour les données sensibles. Utilisez des systèmes sécurisés et dédiés pour les informations sensibles.
Comment récupérer les données utilisateur après l'inscription ?
Après une inscription et une authentification réussies, utilisez getUser() pour récupérer les données de l'utilisateur authentifié, y compris ses informations de profil et son objet d'état personnalisé.
🎓 Meilleures Pratiques
- Validez les entrées avant l'inscription - Vérifiez le format de l'email, la force du mot de passe
- Utilisez HTTPS pour l'authentification - Chiffrez toutes les requêtes de connexion
- Implémentez des exigences de mot de passe - Minimum 8 caractères, casse mixte, chiffres
- Stockez les tokens de manière sécurisée - Cookies HTTP uniquement ou stockage sécurisé
- Préservez l'état existant - Répandez les données existantes lors de la mise à jour de l'état
- Gérez les emails en double - Capturez les erreurs 409 et affichez un message convivial
- Implémentez la déconnexion - Effacez les tokens et les données de session
- Mettez en cache les données utilisateur - Réduisez les appels API pour les utilisateurs fréquemment accédés
Définition du module Utilisateurs
const { Users } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
🔗 Documentation Connexe
- Module AuthProvider - Nécessaire pour l'authentification des utilisateurs
- Panneau d'Administration OneEntry - Utilisateurs - Documentation officielle du panneau d'administration
- Meilleures Pratiques d'Authentification
- Sécurité des Mots de Passe
- Module Commandes - Les commandes référencent les utilisateurs pour l'historique des commandes
- Module Paiements - Les paiements référencent les utilisateurs pour l'historique des paiements