Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Administrar usuarios

Acceda a Datos de Usuario Personalizados - Node.js SDK

Puede almacenar datos personalizados arbitrarios sobre sus usuarios con Atlas App Services. Por ejemplo, puede almacenar el idioma preferido, la fecha de nacimiento o la zona horaria local de un usuario. Antes de escribir y leer estos datos, debe habilitar los datos de usuario personalizados en el backend. Para obtener más información, consulte Enable Custom User Data.

To use custom user data, you must first enable custom user data in App Services:

  1. Create an App.

  2. Enable custom user data.

  3. Crea un usuario para aplicar datos personalizados.

Recupera datos de usuario personalizados en la propiedad customData del User objeto:

const customUserData = app.currentUser.customData;
console.log(customUserData);

App Services no actualiza inmediatamente el valor de User.customData cuando cambian los datos subyacentes. En su lugar, obtiene la versión más reciente de los datos de usuario personalizados cada vez que un usuario actualiza su token de acceso o cuando se llama explícitamente a refreshCustomData(), lo que garantiza que la aplicación tenga los datos de usuario personalizados más recientes.

const updatedCustomUserData = await user.refreshCustomData();
console.log(updatedCustomUserData);

Nota

El campo customData del objeto de usuario es de solo lectura desde una aplicación Node.

Mediante operaciones CRUD estándar a través del servicio MongoDB Atlas y un mongoClient, puedes acceder a los datos personalizados de un usuario. El siguiente ejemplo actualiza los datos personalizados de un usuario para modificar el favoriteColor del usuario a rosa.

// A user must be logged in to use a mongoClient
const user = app.currentUser;
const mongo = user.mongoClient("mongodb-atlas");
const collection = mongo.db("custom-user-data-database").collection("custom-user-data");
// Query for the user object of the logged in user
const filter = { userId: user.id};
// Set the logged in user's favorite color to pink
const update = { $set: { favoriteColor: "pink" }};
// Insert document if it doesn't already exist
const options = { upsert: true };
const result = await collection.updateOne(filter, update, options);

Nota

Para modificar el campo de datos personalizados desde una función de cliente o usuario, debe configurarse el permiso de escritura en la colección donde se almacenan los datos personalizados. Si prefieres restringir el acceso de escritura de los clientes a los datos personalizados de tu aplicación, aún puedes modificar el objeto desde una función del sistema.

Volver

Authenticate Users

En esta página