Nhảy đến nội dung

Cập nhật thuộc tính người dùng ví dụ như số điện thoại của người dùng

Trong ví dụ này, chúng tôi sẽ trình bày cách cập nhật các thuộc tính của người dùng, chẳng hạn như số điện thoại của họ, bằng cách sử dụng API OneEntry.

✅ Mục đích của kịch bản:

  • Người dùng xác thực bằng cách đăng nhập và mật khẩu
  • Nhập số điện thoại mới vào trường điện thoại
  • Lưu dữ liệu người dùng trên Nền tảng OneEntry

✅ Những gì bạn cần:

  • Một PROJECT_URL và APP_TOKEN hợp lệ để xác thực với API OneEntry.
  • Mẫu đăng ký với dấu hiệu "reg"
  • Các trường mẫu (thuộc tính) với các dấu hiệu "email_reg", "password_reg", "name_reg", "phone_reg"
  • Email/số điện thoại hợp lệ để nhận mã kích hoạt

📌 Quan trọng:

  • Chúng tôi không xử lý lỗi trong các ví dụ này.
  • Bạn có thể xử lý lỗi trong trycatch hoặc trong một cấu trúc như "await Promise.catch((error) => error)"

Kịch bản

1. Nhập oneEntry và định nghĩa url và token

Ví dụ:

import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

2. Tạo một khách hàng API với hàm defineOneEntry()

Ví dụ:

const { Forms, FormData } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

3. Hình thành authData và xác thực người dùng với AuthProvider.auth()

Dữ liệu:

[
{
"marker": "email_reg",
"value": "your-user@email.com"
},
{
"marker": "password_reg",
"value": "123456"
}
]

Ví dụ:

const authResponse = await AuthProvider.auth('email', {
authData,
});
Kết quả:
{
"userIdentifier": "your-user@email.com",
"authProviderIdentifier": "email",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR...pZCI6MTYsImF1dGhQ"
"refreshToken": "1745494429101-...-2834edf8"
}

4. Lấy người dùng để tạo mẫu frontend với Users.getUser()

Ví dụ:

const user = await Users.getUser();
Kết quả:
{
"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. Cập nhật người dùng với Users.updateUser()

Dữ liệu:

{
"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"
}

Ví dụ:

const updateUser = await Users.updateUser(body);
Kết quả:
true

6. Lấy người dùng với Users.getUser()

Ví dụ:

const userData = await Users.getUser();
Kết quả:
{
"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": {}
}

Ví dụ cuối cùng

// 1. Nhập oneEntry và định nghĩa PROJECT_URL và APP_TOKEN
import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

// 2. Tạo một khách hàng API:
const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. Hình thành authData và xác thực người dùng với 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. Lấy người dùng để tạo mẫu frontend với Users.getUser()
const user = await Users.getUser();

// 5. Cập nhật người dùng với 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. Lấy người dùng với Users.getUser()
const userData = await Users.getUser();
console.log(userData);