Aller au contenu principal

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 gère l'utilisateur déjà authentifié : récupérez le profil, mettez à jour les données du formulaire et l'objet state personnalisé, archivez ou supprimez le compte, gérez le panier et la liste de souhaits par utilisateur (ou invité), et enregistrez les tokens FCM pour les notifications push.

L'enregistrement et la connexion ne sont pas ici — ils se trouvent dans le module AuthProvider. Le module Users travaille avec l'utilisateur que AuthProvider a déjà autorisé.

🚀 Démarrage rapide

Initialisez le module depuis defineOneEntry :


const { Users } = defineOneEntry(
"your-project-url", {
"token": "your-app-token"
}
);

Récupérez l'utilisateur actuel et mettez à jour son objet state personnalisé (suppose une session authentifiée — voir AuthProvider) :

// Fetch the authorized user's profile and state.
const user = await Users.getUser("en_US");

console.log(user.id, user.identifier);

// Update the user, preserving existing state.
await Users.updateUser({
formIdentifier: user.formIdentifier,
formData: user.formData,
state: { ...user.state, orderCount: (user.state.orderCount || 0) + 1 },
});

✨ Concepts clés

Qu'est-ce qu'un utilisateur ?

Un Utilisateur est un compte enregistré dans votre application :

  • Identifiant - valeur de connexion (email, téléphone ou nom d'utilisateur)
  • Fournisseur d'authentification - la méthode d'authentification utilisée (authProviderIdentifier)
  • Données du formulaire - champs de profil définis par le formulaire d'inscription (formData)
  • Groupes - tableau des ID de groupes auxquels l'utilisateur appartient
  • Objet d'état - données personnalisées de l'application

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
}

Objet d'état

Vous pouvez stocker n'importe quelles données spécifiques à l'application dans l'objet state par utilisateur. Lorsque vous mettez à jour l'utilisateur, ajoutez les données nécessaires à state ; les appels suivants à getUser() les renvoient.

Cas d'utilisationExemple d'étatDescription
E-commerce{ orderCount: 5, totalSpent: 499.99 }Suivre l'historique des achats
Contenu{ articlesRead: 25, bookmarks: [1,2,3] }Suivre la consommation de contenu
Jeux{ level: 15, score: 9500, achievements: [...] }Suivre les progrès du jeu
SaaS{ plan: 'premium', usage: 75 }Suivre les données d'abonnement

Toujours préserver l'état existant lors de la mise à jour — étendez-le pour ne pas perdre d'autres champs :

// ❌ Bad - overwrites the entire state
const state = { orderCount: 1 };

// ✅ Good - preserve existing state
const state = {
...user.state,
orderCount: (user.state.orderCount || 0) + 1,
};

📋 Ce que vous devez savoir

Autorisation requise

Chaque méthode utilisateur nécessite une session autorisée — authentifiez d'abord l'utilisateur via le module AuthProvider. Les méthodes de panier et de liste de souhaits fonctionnent également pour les invités (voir la section Panier et Liste de souhaits ci-dessous).

Données du formulaire utilisateur

Les données de profil utilisateur suivent les formulaires configurés dans le panneau d'administration OneEntry :

  • Chaque utilisateur a un formIdentifier qui fait référence au formulaire d'inscription utilisé.
  • Les champs de profil se trouvent dans le tableau formData sous forme d'entrées marker / type / value.
  • Les types de champs pris en charge incluent : chaîne, entier, flottant, date, dateTime, heure, texte, texteAvecEn-tête, image, groupeD'images, fichier, boutonRadio, liste, entité, intervalleDeTemps.

Directives sur l'objet d'état

  • Stockez uniquement des données spécifiques à l'application ; ne mettez pas de mots de passe, de tokens ou de données de carte dans state.
  • Gardez-le organisé avec des objets imbriqués et une nomenclature cohérente.
  • Mettez à jour en étendant l'état existant (voir ci-dessus) — ne remplacez jamais aveuglément.

Données de notification

Lors de la mise à jour d'un utilisateur, vous pouvez passer un objet notificationData avec des canaux de livraison :

  • email - adresse email pour les notifications
  • phonePush - tableau de numéros de téléphone pour les notifications push
  • phoneSMS - numéro de téléphone pour les notifications SMS

Pagination

Pour les listes de panier/liste de souhaits et d'autres collections, parcourez les résultats plutôt que de tout charger d'un coup.


📊 Tableau de référence rapide

MéthodeDescriptionCas 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'utilisateurMises à jour de profil, changements d'état
archiveUser() 🔐Archiver le compte utilisateurSuppression douce du compte utilisateur
deleteUser() 🔐Supprimer définitivement l'utilisateurSuppression définitive du compte utilisateur
addFCMToken() 🔐Ajouter un token FCM pour les notifications pushActiver les notifications push
deleteFCMToken() 🔐Supprimer le token FCMDésactiver les notifications push
getCart()Obtenir le panier de l'utilisateur ou de l'invitéLire le panier actuel
setCart()Remplacer l'ensemble du panierSynchroniser un panier côté client
addCartItem()Ajouter un article au panierAction "Ajouter au panier"
removeCartItem()Retirer un article du panierAction "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 souhaitsSynchroniser une liste de souhaits côté client
addWishlistItem()Ajouter un article à la liste de souhaitsAction "Ajouter à la liste de souhaits"
removeWishlistItem()Retirer un article de la liste de souhaitsAction "Retirer de la liste de souhaits"

🔐 marque les méthodes qui nécessitent une session utilisateur autorisée (AuthProvider). Les méthodes de panier et de liste de souhaits fonctionnent également pour les invités.

🛒 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 opèrent 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équentes (FAQ)

Qu'est-ce que l'objet d'état utilisateur et comment devrais-je l'utiliser ?

L'objet state 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 les progrès. Étendez toujours l'état existant lors de la mise à jour pour éviter d'écraser d'autres données.


Comment mettre à jour les informations de profil utilisateur ?

Utilisez updateUser() pour modifier les champs de données du formulaire, les paramètres de notification et l'objet state. Authentifiez d'abord l'utilisateur via le module AuthProvider.


Quelle est la différence entre archiveUser() et deleteUser() ?

archiveUser() est une suppression douce qui marque l'utilisateur pour suppression mais préserve les données. deleteUser() supprime définitivement le compte utilisateur. Utilisez l'archivage à moins que vous n'ayez 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, permettant les notifications push sur ses appareils. Utilisez deleteFCMToken() lorsqu'il se déconnecte ou désactive les notifications.


Comment récupérer les données utilisateur après l'inscription ?

Après une inscription réussie et une authentification via AuthProvider, appelez getUser() pour récupérer le profil de l'utilisateur authentifié et l'objet state personnalisé.


🎓 Meilleures pratiques

  • Authentifiez d'abord - chaque méthode utilisateur nécessite une session autorisée (voir le module AuthProvider).
  • Préservez l'état existant - étendez les données existantes lors de la mise à jour de state.
  • Ne stockez pas de données sensibles dans l'état - gardez les mots de passe, tokens et données de carte hors de state.
  • Mettez en cache les données utilisateur - réduisez les appels API pour les données fréquemment consultées.

🔗 Documentation connexe