Giới thiệu
Xác thực và đăng ký người dùng trở nên dễ dàng.
🎯 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 nhập, đăng ký, quản lý mật khẩu và giữ cho người dùng đăng nhập một cách an toàn.
Hãy nghĩ về nó như là bảo vệ an ninh cho ứng dụng của bạn - nó kiểm tra ai là ai, cho phép người dùng được ủy quyền vào, và giữ cho những kẻ xấu ở ngoài.
📖 Giải thích đơn giản
Khi người dùng muốn:
- 👤 Đăng ký người dùng - Tạo tài khoản người dùng mới
- 🔐 Xác thực - Đăng nhập và quản lý phiên
- 🔑 Thay đổi mật khẩu
- 🚪 Đăng xuất một cách an toàn
- ✉️ Xác minh email với mã kích hoạt
- 🔒 Bảo mật - Băm mật khẩu, quản lý token
...mô-đun này thực hiện tất cả công việc nặng nhọc!
Vấn đề với việc xây dựng quản lý xác thực người dùng từ đầu:
❌ Không có băm mật khẩu
❌ Không có xác thực
❌ Không kiểm tra trùng lặp
❌ Không có xác minh email
❌ So sánh mật khẩu không an toàn
❌ Không có quản lý phiên
❌ Không có giới hạn tần suất
Vấn đề:
- 🔒 Không an toàn - Không có băm mật khẩu, dễ bị tấn công
- 📋 Không có xác thực - Dữ liệu xấu có thể được lưu trữ
- 🔄 Không có xác thực - Không có phiên hoặc token
- 💾 Không có tính bền vững - Dữ liệu bị mất khi khởi động lại
Giải pháp AuthProvider:
✅ Tốt - Quản lý xác thực an toàn
OneEntry tự động:
- Băm mật khẩu một cách an toàn
- Xác thực định dạng email
- Kiểm tra trùng lặp
- Lưu trữ dữ liệu người dùng một cách bền vững
- Cung cấp token xác thực
Cách hoạt động:
User signs up → AuthProvider creates account → Sends activation code via email ✅
User logs in → AuthProvider verifies credentials → Returns access tokens ✅
✨ Tính năng 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 & đặt lại mật khẩu | Quy trình quên mật khẩu |
| 🎫 Quản lý token | Giữ người dùng đăng nhập an toàn | Tự động làm mới phiên |
| ✉️ Xác minh email | Gửi mã kích hoạt | Xác minh email sau khi đăng ký |
| 🌍 Đa ngôn ngữ | Hỗ trợ nhiều ngôn ngữ | Ứng dụng quốc tế |
Hệ thống hỗ trợ nhiều nhà cung cấp xác thực người dùng: đăng nhập + mật khẩu và OAuth.
Ví dụ quy trình xác thực với xác minh email
1. User enters email + password
↓
2. auth() called
↓
3. OneEntry verifies credentials
(Compares hashed passwords)
↓
4. Returns authentication token
(JWT or session token)
↓
5. Token stored client-side
(localStorage, cookie, memory)
↓
6. Token sent with requests
(Authorization header)
↓
7. Token validated by server
(Checks expiration, signature)
📋 Những điều bạn cần biết
Nhà cung cấp xác thực
OneEntry hỗ trợ nhiều cách xác thực:
- Email (phổ biến nhất) - email/mật khẩu truyền thống
- Điện thoại (SMS) - xác thực qua số điện thoại
- Xã hội (OAuth) - Google, Facebook, v.v.
Mỗi nhà cung cấp có một marker (ví dụ: email cho nhà cung cấp email).
Giải thích đơn giản về token
Khi một người dùng đăng nhập, họ nhận được hai token:
-
Access Token 🎫 - Giống như vé xem phim (hết hạn nhanh), được cấu hình trong bảng điều khiển quản trị
- Được sử dụng cho các yêu cầu API
- Ngắn hạn để bảo mật
-
Refresh Token 🔄 - Giống như thẻ mùa (có thời gian sử dụng lâu hơn)
- Được sử dụng để lấy token truy cập mới
- Vẫn có giá trị trong vài ngày/tuần
Tại sao lại có hai token? Bảo mật! Nếu ai đó đánh cắp token truy cập, nó sẽ hết hạn sớm.
Trường biểu mẫu
Khi đăng ký hoặc cập nhật người dùng, bạn gửi dữ liệu biểu mẫu với:
marker- Tên trường (ví dụ: "email", "password", "firstName")type- Kiểu dữ liệu (ví dụ: "string", "number", "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 |
|---|---|
| auth() | Cho phép bạn xác thực người dùng. |
| changePassword() | Thay đổi mật khẩu người dùng. |
| checkCode() | Kiểm tra mã kích hoạt của người dùng. |
| generateCode() | Lấy mã để kích hoạt người dùng. |
| getActiveSessionsByMarker() | Lấy dữ liệu phiên 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 tài khoản người dùng. |
| logoutAll() | Đăng xuất tài khoản người dùng trên tất cả các thiết bị. |
| oauth() | Đăng ký người dùng (ủy quyền) qua OAUTH. |
| refresh() | Cập nhật token người dùng. |
| signUp() | Đăng ký người dùng. |
❓ Câu hỏi thường gặp (FAQ)
Tôi có cần quản lý token thủ công không?
Không! SDK tự động xử lý token. Chỉ cần gọi các phương thức và SDK sẽ lo liệu:
- Lưu trữ token
- Làm mới token hết hạn
- Gửi token với các yêu cầu API
Làm thế nào để giữ người dùng đăng nhập sau khi làm mớ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ì 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 OneEntry admin, sau đó sử dụng phương thức oauthSignUp().
Làm thế nào để tôi xử lý lỗi?
Bọc các cuộc gọi trong try/catch:
try {
// Success!
} catch (error) {
// Error!
}
Điều gì xảy ra khi token truy cập hết hạn?
SDK tự động sử dụng refresh token để lấy một access token mới. Người dùng của bạn sẽ vẫn đăng nhập một cách liền mạch!
Nó có an toàn không?
Có! OneEntry sử dụng:
- 🔒 Mã hóa HTTPS
- 🎫 Token JWT (tiêu chuẩn ngành)
- 🔄 Token truy cập ngắn hạn
- 🔐 Băm mật khẩu an toàn
- ✉️ Xác minh email
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
Định nghĩa của mô-đun AuthProvider
const { AuthProvider } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
🔗 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