Actualizar atributos del usuario, por ejemplo, el número de teléfono del usuario
En este ejemplo, demostramos cómo actualizar los atributos de un usuario, como su número de teléfono, utilizando la API de OneEntry.
✅ Propósito del escenario:
- El usuario se autentica con un inicio de sesión y una contraseña
- Ingresa un nuevo número de teléfono en el campo de teléfono
- Guarda los datos del usuario en la Plataforma OneEntry
✅ Lo que necesitas:
- Un PROJECT_URL y APP_TOKEN válidos para la autenticación con la API de OneEntry.
- Formulario de registro con el marcador "reg"
- Campos del formulario (atributos) con los marcadores "email_reg", "password_reg", "name_reg", "phone_reg"
- Correo electrónico/número de teléfono válido para recibir el código de activación
📌 Importante:
- No manejamos errores en estos ejemplos.
- Puedes manejar errores en trycatch o en una construcción como "await Promise.catch((error) => error)"
Escenario
1. Importar oneEntry y definir url y token
Ejemplo:
import { defineOneEntry } from 'oneentry';
const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';
2. Crear un cliente API con la función defineOneEntry()
Ejemplo:
const { Forms, FormData } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
3. Formar authData y autenticar al usuario con AuthProvider.auth()
Datos:
[
{
"marker": "email_reg",
"value": "your-user@email.com"
},
{
"marker": "password_reg",
"value": "123456"
}
]
Ejemplo:
const authResponse = await AuthProvider.auth('email', {
authData,
});
Resultado:
{
"userIdentifier": "your-user@email.com",
"authProviderIdentifier": "email",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR...pZCI6MTYsImF1dGhQ"
"refreshToken": "1745494429101-...-2834edf8"
}
4. Obtener usuario para generar el formulario frontend con Users.getUser()
Ejemplo:
const user = await Users.getUser();
Resultado:
{
"id": 33,
"identifier": "your-user@email.com",
"authProviderIdentifier": "email",
"formData": [
{
"marker": "name_reg",
"type": "string",
"value": "UserName"
},
{
"marker": "email_notification_reg",
"type": "string",
"value": "your-user@email.com"
},
{
"marker": "phone_reg",
"type": "string",
"value": "+19258382551"
}
],
"formIdentifier": "reg",
"groups": [
1
],
"state": {}
}
5. Actualizar usuario con Users.updateUser()
Datos:
{
"formIdentifier": "reg",
"authData": [
{
"marker": "password_reg",
"value": "123456"
}
],
"formData": {
"en_US": [
{
"marker": "name_reg",
"type": "string",
"value": "UserName"
},
{
"marker": "email_notification_reg",
"type": "string",
"value": "your-user@email.com"
},
{
"marker": "phone_reg",
"type": "string",
"value": "+19258382551"
}
]
},
"notificationData": {
"email": "your-user@email.com",
"phonePush": [
"+19258382551"
],
"phoneSMS": "+19258382551"
},
"langCode": "en_US"
}
Ejemplo:
const updateUser = await Users.updateUser(body);
Resultado:
true
6. Obtener usuario con Users.getUser()
Ejemplo:
const userData = await Users.getUser();
Resultado:
{
"id": 33,
"identifier": "your-user@email.com",
"authProviderIdentifier": "email",
"formData": [
{
"marker": "name_reg",
"type": "string",
"value": "UserName"
},
{
"marker": "email_notification_reg",
"type": "string",
"value": "your-user@email.com"
},
{
"marker": "phone_reg",
"type": "string",
"value": "+19258382551"
}
],
"formIdentifier": "reg",
"groups": [
1
],
"state": {}
}
Ejemplo final
// 1. Importar oneEntry y definir PROJECT_URL y APP_TOKEN
import { defineOneEntry } from 'oneentry';
const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';
// 2. Crear un cliente API:
const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
// 3. Formar authData y autenticar al usuario con AuthProvider.auth()
const emailReg = 'your-user@email.com';
const authData = [
{
marker: 'email_reg',
value: emailReg,
},
{
marker: 'password_reg',
value: '123456',
},
];
const authResponse = await AuthProvider.auth('email', {
authData,
});
// 4. Obtener usuario para generar el formulario frontend con Users.getUser()
const user = await Users.getUser();
// 5. Actualizar usuario con Users.updateUser()
const newPhone = '+79258382551';
const body = {
formIdentifier: 'reg',
authData: [
{
marker: 'password_reg',
value: '123456',
},
],
formData: [
...user.formData.filter(
(d: { marker: string }) => d.marker !== 'phone_reg',
),
{
marker: 'phone_reg',
type: 'string',
value: newPhone,
},
],
notificationData: {
email: emailReg,
phonePush: [newPhone],
phoneSMS: newPhone,
},
};
const updateUser = await Users.updateUser(body);
console.log(updateUser);
// 6. Obtener usuario con Users.getUser()
const userData = await Users.getUser();
console.log(userData);