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:

  • Những ví dụ này không bao gồm xử lý lỗi.
  • Bạn có thể quản lý lỗi bằng cách sử dụng khối try-catch hoặc bằng cách sử dụng cấu trúc như await Promise.catch((error) => error).
  • Đảm bảo rằng formIdentifier được sử dụng trong phương thức updateUser() khớp với cái đã được cấu hình trong dự án OneEntry của bạn.

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 client API với hàm defineOneEntry()

Ví dụ:

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

3. Tạo 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": {},
"moduleFormConfigs": []
}

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": {},
"moduleFormConfigs": []
}

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 client API:
const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. Tạo 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);