Nhảy đến nội dung

Giới thiệu

🎯 Mô-đun này làm gì?

Mô-đun Users cho phép bạn quản lý người dùng đã đăng ký. Trong Platform OneEntry, có các công cụ cần thiết để làm việc với người dùng đã đăng ký.


📖 Giải thích đơn giản

Mỗi ứng dụng đều cần quản lý người dùng:

  • 📝 Hồ sơ người dùng - Quản lý thông tin người dùng
  • 💾 Dữ liệu người dùng tùy chỉnh - Lưu trữ dữ liệu cụ thể cho ứng dụng (đối tượng trạng thái)
  • 🔍 Tìm kiếm người dùng - Tìm kiếm và lọc người dùng

✨ Khái niệm chính

Người dùng là gì?

Người dùng là một tài khoản đã đăng ký trong ứng dụng của bạn:

  • Thông tin cơ bản - Tên, email, điện thoại
  • Xác thực - Lưu trữ mật khẩu an toàn
  • Đối tượng trạng thái - Dữ liệu tùy chỉnh cho ứng dụng
  • Thời gian - Ngày đăng ký, lần đăng nhập cuối
  • Trạng thái - Hoạt động, không hoạt động, bị chặn
  • Quyền hạn - Vai trò và cấp độ truy cập của người dùng

Cấu trúc người dùng

Mỗi người dùng có cấu trúc như sau:

{
id: 8, // ID người dùng
identifier: 'test@test.ru', // Định danh người dùng (email/đăng nhập)
authProviderIdentifier: 'email', // Loại nhà cung cấp xác thực
formIdentifier: 'reg', // Định danh mẫu đăng ký
formData: [ // Dữ liệu hồ sơ người dùng
{ marker: 'name_reg', type: 'string', value: 'Ivan' },
{ marker: 'phone_reg', type: 'string', value: '+19258382556' },
],
groups: [1], // Nhóm người dùng cho quyền hạn
state: {}, // Dữ liệu tùy chỉnh cho ứng dụng
moduleFormConfigs: [], // Cấu hình mẫu bổ sung
total: "1" // Tổng số (cho phân trang)
}

Các trường chính:

  • id - Định danh người dùng duy nhất
  • identifier - Đăng nhập của người dùng (email, điện thoại, tên người dùng)
  • authProviderIdentifier - Phương thức xác thực được sử dụng (email, điện thoại, v.v.)
  • formData - Mảng các trường mẫu với thông tin hồ sơ của người dùng
  • groups - Mảng ID nhóm cho kiểm soát truy cập
  • state - Đối tượng JSON tùy chỉnh cho dữ liệu cụ thể của ứng dụng

Lấy người dùng với dữ liệu trạng thái tùy chỉnh

Lợi ích:

  • 🔒 An toàn - Băm mật khẩu, xác thực an toàn
  • 📋 Đã xác thực - Xác thực email và dữ liệu
  • 🔄 Đã xác thực - Phiên dựa trên token
  • 💾 Bền vững - Dữ liệu được lưu trữ trong cơ sở dữ liệu

Đối tượng trạng thái người dùng

Bạn có thể lưu trữ dữ liệu cần thiết cho ứng dụng của bạn hoạt động trong một đối tượng trạng thái. Khi thay đổi người dùng, hãy thêm dữ liệu cần thiết vào trạng thái. Khi dữ liệu của người dùng được nhận sau đó, nó sẽ chứa một đối tượng trạng thái.

Một ví dụ trong đó chúng ta thêm thông tin cho người dùng về số lượng đơn hàng mà họ đã thực hiện. Thêm một trường "orderCount" với giá trị vào đối tượng trạng thái.

Đối tượng trạng thái là nơi lưu trữ dữ liệu tùy chỉnh cho mỗi người dùng:

Trường hợp sử dụngVí dụ trạng tháiMô tả
Thương mại điện tử{ orderCount: 5, totalSpent: 499.99 }Theo dõi lịch sử mua hàng
Trang nội dung{ articlesRead: 25, bookmarks: [1,2,3] }Theo dõi tiêu thụ nội dung
Ứng dụng xã hội{ postsCount: 42, followers: 150 }Theo dõi các chỉ số xã hội
Trò chơi{ level: 15, score: 9500, achievements: [...] }Theo dõi tiến trình trò chơi
SaaS{ plan: 'premium', usage: 75 }Theo dõi dữ liệu đăng ký

Quy trình làm việc của người dùng

1. Người dùng điền mẫu đăng ký
(Email, mật khẩu, tên)

2. createUser() được gọi
(OneEntry xác thực và băm mật khẩu)

3. Tài khoản người dùng được tạo
(Lưu trữ trong cơ sở dữ liệu)

4. Người dùng đăng nhập
(authenticateUser() xác minh thông tin xác thực)

5. Token xác thực được trả về
(Sử dụng cho các yêu cầu tiếp theo)

6. Ứng dụng cập nhật trạng thái người dùng
(Dữ liệu tùy chỉnh như orderCount)

7. Dữ liệu người dùng được lấy khi cần
(getUserById() với trạng thái hiện tại)

Tại sao sử dụng mô-đun người dùng?

Lợi íchMô tả
Xác thực an toànBăm mật khẩu, quản lý token
Quản lý người dùngĐọc, cập nhật, xóa người dùng
Lưu trữ dữ liệu tùy chỉnhĐối tượng trạng thái cho dữ liệu cụ thể của ứng dụng
Xác thực emailKiểm tra định dạng email tự động
Ngăn chặn trùng lặpNgăn chặn đăng ký email trùng lặp
Quản lý phiênXác thực dựa trên token

📋 Những điều bạn cần biết

Nhà cung cấp xác thực

Người dùng trong OneEntry được quản lý thông qua hệ thống nhà cung cấp xác thực xử lý các cơ chế đăng ký và xác thực.

Các điểm chính:

  • Người dùng đăng ký thông qua các mẫu được cấu hình trong bảng điều khiển quản trị OneEntry
  • Mỗi người dùng được liên kết với một nhà cung cấp xác thực (email, điện thoại, v.v.)
  • Dữ liệu người dùng được lưu trữ trong các trường mẫu được xác định bởi formData
  • Siêu dữ liệu bổ sung được lưu trữ trong đối tượng state

Đối tượng trạng thái người dùng là linh hoạt

Đối tượng trạng thái có thể lưu trữ bất kỳ dữ liệu JSON tùy chỉnh nào

Thực hành tốt nhất:

  • Chỉ lưu trữ dữ liệu cụ thể cho ứng dụng
  • Giữ cho đối tượng trạng thái được tổ chức với các đối tượng lồng nhau
  • Cập nhật toàn bộ đối tượng trạng thái (spread dữ liệu hiện có)
  • Không lưu trữ dữ liệu nhạy cảm trong trạng thái

Bảo mật mật khẩu

OneEntry tự động xử lý bảo mật mật khẩu

Trách nhiệm của bạn:

  • Thực thi yêu cầu mật khẩu (độ dài, độ phức tạp)
  • Xác thực mật khẩu ở phía client trước khi gửi
  • Không bao giờ ghi lại mật khẩu
  • Sử dụng HTTPS cho tất cả các yêu cầu xác thực

Quản lý token xác thực

Lưu trữ và sử dụng các token xác thực một cách an toàn

Thực hành tốt nhất cho token:

  • Lưu trữ trong cookie chỉ HTTP khi có thể
  • Sử dụng thời gian hết hạn ngắn (1-2 giờ)
  • Triển khai token làm mới cho các phiên dài
  • Xóa token khi đăng xuất
  • Không bao giờ tiết lộ token trong URL

Xác thực đăng ký người dùng

Luôn xác thực đầu vào của người dùng trước khi đăng ký

Cập nhật trạng thái người dùng một cách an toàn

Luôn bảo tồn trạng thái hiện có khi cập nhật:

// ❌ Không tốt - Ghi đè toàn bộ trạng thái
const userstate = {
orderCount: 1
}

// ✅ Tốt - Bảo tồn trạng thái hiện có
const userstate = {
...user.state, // Spread trạng thái hiện có
orderCount: (user.state.orderCount || 0) + 1 // Cập nhật trường cụ thể
}

Ngăn chặn email trùng lặp

OneEntry tự động ngăn chặn đăng ký email trùng lặp

Thực hành tốt nhất: Kiểm tra trạng thái lỗi và hiển thị thông điệp thân thiện với người dùng.

Phân trang người dùng

Đối với các cơ sở người dùng lớn, luôn phân trang khi lấy nhiều người dùng


💡 Ghi chú quan trọng

Cần xác thực

Hầu hết các phương thức người dùng yêu cầu xác thực thông qua mô-đun AuthProvider. Hãy chắc chắn xác thực người dùng trước khi gọi các phương thức quản lý người dùng.


Dữ liệu mẫu người dùng

Dữ liệu người dùng được cấu trúc theo các mẫu được cấu hình trong bảng điều khiển quản trị OneEntry:

  • Mỗi người dùng có một formIdentifier tham chiếu đến mẫu đăng ký đã sử dụng
  • Dữ liệu người dùng được lưu trữ trong mảng formData với các marker, loại và giá trị
  • Các loại trường được hỗ trợ bao gồm: string, integer, float, date, dateTime, time, text, textWithHeader, image, groupOfImages, file, radioButton, list, entity, timeInterval

Hướng dẫn đối tượng trạng thái

Thực hành tốt nhất cho đối tượng trạng thái:

  • Chỉ lưu trữ dữ liệu cụ thể cho ứng dụng
  • Giữ cho trạng thái được tổ chức với các đối tượng lồng nhau
  • Cập nhật toàn bộ trạng thái (spread dữ liệu hiện có)
  • Không lưu trữ dữ liệu nhạy cảm (mật khẩu, token)
  • Không lưu trữ dữ liệu nhị phân lớn
  • Sử dụng quy tắc đặt tên nhất quán

Thông báo đẩy

Sử dụng addFCMToken()deleteFCMToken() để quản lý các token Firebase Cloud Messaging cho việc gửi thông báo đẩy đến người dùng.


Dữ liệu thông báo

Khi cập nhật người dùng, bạn có thể cung cấp đối tượng notificationData chứa:

  • email - Địa chỉ email để nhận thông báo
  • phonePush - Mảng số điện thoại để nhận thông báo đẩy
  • phoneSMS - Số điện thoại để nhận thông báo SMS

📊 Bảng tham khảo nhanh

Phương thứcMô tảTrường hợp sử dụng
getUser()Lấy dữ liệu người dùng đã xác thựcLấy hồ sơ người dùng hiện tại
updateUser()Cập nhật thông tin người dùngCập nhật hồ sơ, thay đổi trạng thái
archiveUser()Lưu trữ tài khoản người dùngXóa mềm tài khoản người dùng
deleteUser()Xóa vĩnh viễn người dùngXóa cứng tài khoản người dùng
addFCMToken()Thêm token FCM cho thông báo đẩyKích hoạt thông báo đẩy
deleteFCMToken()Xóa token FCMVô hiệu hóa thông báo đẩy

❓ Câu hỏi thường gặp (FAQ)

Đối tượng trạng thái người dùng là gì và tôi nên sử dụng nó như thế nào?

Đối tượng trạng thái là nơi lưu trữ JSON linh hoạt cho dữ liệu người dùng cụ thể của ứng dụng. Sử dụng nó để theo dõi các chỉ số tùy chỉnh như số lượng đơn hàng, sở thích hoặc tiến trình. Luôn spread trạng thái hiện có khi cập nhật để tránh ghi đè dữ liệu khác.


Làm thế nào để tôi cập nhật thông tin hồ sơ người dùng?

Sử dụng updateUser() để sửa đổi dữ liệu hồ sơ người dùng. Bạn có thể cập nhật các trường dữ liệu mẫu, cài đặt thông báo và đối tượng trạng thái. Hãy nhớ xác thực người dùng trước bằng cách sử dụng mô-đun AuthProvider.


Sự khác biệt giữa archiveUser() và deleteUser() là gì?

archiveUser() là một xóa mềm mà ẩn người dùng nhưng vẫn bảo tồn dữ liệu (có thể khôi phục). deleteUser() xóa vĩnh viễn người dùng và tất cả dữ liệu liên quan (không thể hoàn tác). Sử dụng lưu trữ trừ khi bạn cần xóa hoàn toàn dữ liệu.


Làm thế nào để tôi xử lý thông báo đẩy cho người dùng?

Sử dụng addFCMToken() để đăng ký một token Firebase Cloud Messaging cho người dùng. Điều này cho phép gửi thông báo đẩy đến thiết bị của họ. Sử dụng deleteFCMToken() khi họ đăng xuất hoặc vô hiệu hóa thông báo.


Tôi có thể lưu trữ dữ liệu nhạy cảm trong đối tượng trạng thái người dùng không?

Không! Không bao giờ lưu trữ mật khẩu, token, số thẻ tín dụng hoặc dữ liệu nhạy cảm khác trong đối tượng trạng thái. Nó không được mã hóa đặc biệt cho dữ liệu nhạy cảm. Sử dụng các hệ thống an toàn, được thiết kế riêng cho thông tin nhạy cảm.


Làm thế nào để tôi lấy dữ liệu người dùng sau khi đăng ký?

Sau khi đăng ký và xác thực thành công, sử dụng getUser() để lấy dữ liệu của người dùng đã xác thực, bao gồm thông tin hồ sơ và đối tượng trạng thái tùy chỉnh của họ.


🎓 Thực hành tốt nhất

  • Xác thực đầu vào trước khi đăng ký - Kiểm tra định dạng email, độ mạnh mật khẩu
  • Sử dụng HTTPS cho xác thực - Mã hóa tất cả các yêu cầu đăng nhập
  • Triển khai yêu cầu mật khẩu - Tối thiểu 8 ký tự, chữ hoa chữ thường, số
  • Lưu trữ token một cách an toàn - Cookie chỉ HTTP hoặc lưu trữ an toàn
  • Bảo tồn trạng thái hiện có - Spread dữ liệu hiện có khi cập nhật trạng thái
  • Xử lý email trùng lặp - Bắt lỗi 409 và hiển thị thông điệp thân thiện với người dùng
  • Triển khai đăng xuất - Xóa token và dữ liệu phiên
  • Lưu trữ dữ liệu người dùng - Giảm số lần gọi API cho những người dùng thường xuyên truy cập

Thêm thông tin về quản lý người dùng trong bảng điều khiển quản trị OneEntry: https://doc.oneentry.cloudhttps://doc.oneentry.cloud/docs/category/users


Định nghĩa của mô-đun Người dùng


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


🔗 Tài liệu liên quan