Giới thiệu
Xác thực và đăng ký người dùng trở nên dễ dàng.
Thêm thông tin về giao diện người dùng của mô-đun https://doc.oneentry.cloud/docs/users/auth_provider
🎯 Mô-đun này làm gì?
Mô-đun AuthProvider xử lý mọi thứ liên quan đến xác thực người dùng — đăng ký, đăng nhập, thay đổi mật khẩu, mã kích hoạt qua email/SMS, OAuth, và giữ cho phiên làm việc luôn hoạt động với các mã truy cập và làm mới. SDK hỗ trợ nhiều nhà cung cấp xác thực (đăng nhập + mật khẩu và OAuth).
🚀 Bắt đầu nhanh
Khởi tạo mô-đun từ defineOneEntry:
const { AuthProvider } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
Xác thực một người dùng với nhà cung cấp email và đọc các mã đã trả về:
// Authenticate against the "email" auth provider.
const result = await AuthProvider.auth("email", {
authData: [
{ marker: "login", value: "example@oneentry.cloud" },
{ marker: "password", value: "12345" },
],
});
// On success the SDK stores the tokens automatically.
console.log(result.accessToken, result.refreshToken);
Tham số đầu tiên luôn là marker của nhà cung cấp (ví dụ: "email"). Sau khi auth() thành công, SDK sẽ giữ các mã và làm mới chúng cho bạn.
✨ Khái niệm chính
| Tính năng | Chức năng | Ví dụ sử dụng |
|---|---|---|
| Đăng ký người dùng | Tạo tài khoản người dùng mới | Biểu mẫu đăng ký |
| Đăng nhập / Đăng xuất | Xác thực người dùng | Trang đăng nhập |
| Quản lý mật khẩu | Thay đổi & khôi phục mật khẩu | Quy trình quên mật khẩu |
| Quản lý mã | Giữ người dùng đăng nhập an toàn | Tự động làm mới phiên |
| Xác thực qua Email / SMS / Push | Gửi mã kích hoạt | Xác minh tài khoản sau khi đăng ký |
| OAuth | Đăng nhập xã hội (Google, v.v.) | "Đăng nhập bằng Google" |
Quy trình xác thực
1. User enters email + password
↓
2. auth() is called with the provider marker
↓
3. OneEntry verifies credentials and returns access + refresh tokens
↓
4. The SDK stores the tokens and sends the access token with requests
↓
5. When the access token expires, the SDK uses the refresh token automatically
📋 Những điều bạn cần biết
Nhà cung cấp xác thực
OneEntry hỗ trợ các cách xác thực khác nhau, mỗi cách được xác định bằng một marker:
- Email (
email) - đăng nhập truyền thống + mật khẩu - OAuth - Google, Facebook, v.v.
Mã kích hoạt có thể được gửi qua các kênh khác nhau (email, SMS hoặc push) thông qua đối tượng notificationData mà bạn truyền vào signUp() — phoneSMS và phonePush là các kênh gửi cho những mã đó, không phải là các nhà cung cấp đăng nhập độc lập.
Mã
Một auth() thành công trả về hai mã:
- Mã truy cập - ngắn hạn, được gửi cùng với các yêu cầu API. Thời gian sống của nó được cấu hình trong bảng điều khiển quản trị.
- Mã làm mới - dài hạn, được sử dụng để lấy các mã truy cập mới.
SDK sẽ lưu trữ và làm mới các mã cho bạn. Để duy trì một phiên làm việc qua các lần tải lại, hãy cấu hình saveFunction (xem phần Câu hỏi thường gặp bên dưới).
Trường biểu mẫu
Khi đăng ký người dùng, bạn gửi các mục dữ liệu biểu mẫu với:
marker- tên trường (ví dụ:email_reg,password_reg,last_name)type- loại dữ liệu (ví dụ:string,image)value- giá trị thực tế
📊 Bảng tham khảo nhanh - Các phương thức phổ biến
| Phương thức | Chức năng |
|---|---|
| activateUser() | Kích hoạt người dùng với mã dịch vụ. |
| auth() | Xác thực một người dùng. |
| changePassword() | Thay đổi mật khẩu người dùng. |
| checkCode() | Kiểm tra mã kích hoạt người dùng. |
| generateCode() | Lấy mã để kích hoạt người dùng. |
| getActiveSessionsByMarker() | Lấy các phiên làm việc của người dùng đang hoạt động. |
| getAuthProviderByMarker() | Lấy một đối tượng nhà cung cấp xác thực theo marker. |
| getAuthProviders() | Lấy tất cả các đối tượng nhà cung cấp xác thực. |
| logout() 🔐 | Đăng xuất khỏi tài khoản hiện tại. |
| logoutAll() 🔐 | Đăng xuất trên tất cả các thiết bị. |
| oauth() | Đăng ký / xác thực qua OAuth. |
| refresh() | Làm mới mã người dùng. |
| signUp() | Đăng ký người dùng. |
🔐 đánh dấu các phương thức yêu cầu một phiên người dùng đã được xác thực.
❓ Câu hỏi thường gặp (FAQ)
Tôi có cần quản lý mã một cách thủ công không?
Không. SDK lưu trữ mã, làm mới các mã đã hết hạn và tự động gửi mã truy cập với mỗi yêu cầu.
Làm thế nào để giữ người dùng đăng nhập sau khi tải lại trang?
Cấu hình SDK với saveFunction:
const { AuthProvider } = defineOneEntry("your-url", {
token: "your-token",
auth: {
refreshToken: localStorage.getItem('refreshToken'),
saveFunction: (token) => localStorage.setItem('refreshToken', token)
}
});
Sự khác biệt giữa đăng nhập và email là gì?
login- có thể là email HOẶC tên người dùng (bất cứ điều gì mà nhà cung cấp xác thực của bạn chấp nhận)email- luôn là một địa chỉ email
Tôi có thể sử dụng đăng nhập xã hội (Google, Facebook) không?
Có. Thiết lập các nhà cung cấp OAuth trong quản trị OneEntry, sau đó sử dụng phương thức oauth().
Điều gì xảy ra khi mã truy cập hết hạn?
SDK tự động sử dụng mã làm mới để lấy mã truy cập mới, vì vậy người dùng vẫn được đăng nhập.
🎓 Thực hành tốt nhất
- Luôn truyền marker của nhà cung cấp làm tham số đầu tiên (ví dụ:
"email"). - Lưu trữ mã làm mới với
saveFunctionđể các phiên làm việc tồn tại qua các lần tải lại. - Bọc các cuộc gọi xác thực trong try/catch và kiểm tra đối tượng lỗi đã trả về.
- Sử dụng
logout()/logoutAll()để vô hiệu hóa các phiên làm việc trên máy chủ, không chỉ ở phía khách hàng.
🔗 Tài liệu liên quan
- Mô-đun Người dùng - Quản lý hồ sơ và dữ liệu người dùng
- Mô-đun Biểu mẫu - Tạo biểu mẫu đăng ký/đăng nhập
- Mô-đun FormData - Xử lý các biểu mẫu gửi đi