Nhảy đến nội dung

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ốc độ

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 của 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:

Người dùng đăng ký → AuthProvider tạo tài khoản → Gửi mã kích hoạt qua email ✅
Người dùng đăng nhập → AuthProvider xác minh thông tin đăng nhập → Trả về token truy cập ✅

✨ Tính năng chính

Tính năngChức năngVí dụ sử dụng
🔐 Đăng ký người dùngTạo tài khoản người dùng mớiBiểu mẫu đăng ký
🚪 Đăng nhập/Đăng xuấtXác thực người dùngTrang đăng nhập
🔑 Quản lý mật khẩuThay đổi & đặt lại mật khẩuQuy trình quên mật khẩu
🎫 Quản lý tokenGiữ người dùng đăng nhập an toànTự động làm mới phiên
✉️ Xác minh emailGửi mã kích hoạtXác minh email sau khi đăng ký
🌍 Đa ngôn ngữHỗ trợ nhiều ngôn ngữỨng dụng quốc tế

Quy trình xác thực

1. Người dùng nhập email + mật khẩu

2. gọi auth()

3. OneEntry xác minh thông tin đăng nhập
(So sánh mật khẩu đã băm)

4. Trả về token xác thực
(JWT hoặc token phiên)

5. Token được lưu trữ ở phía client
(localStorage, cookie, bộ nhớ)

6. Token được gửi cùng với các yêu cầu
(Tiêu đề Authorization)

7. Token được xác minh bởi máy chủ
(Kiểm tra thời gian hết hạn, chữ ký)

📋 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 khác nhau:

  • 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 về token một cách đơn giản

Khi một người dùng đăng nhập, họ nhận được hai token:

  • Token truy cập 🎫 - Giống như vé xem phim (hết hạn nhanh, ~15 phút)

    • Được sử dụng cho các yêu cầu API
    • Ngắn hạn để bảo mật
  • Token làm mới 🔄 - 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 nhiều 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 thông tin

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ứcChức năngKhi nào sử dụ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ị.
oauthSignUp()Đă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 cùng 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à đị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 {
// Thành công!
} catch (error) {
// Lỗi!
}

Điều gì xảy ra khi token truy cập hết hạn?

SDK tự động sử dụng token làm mới để lấy một token truy cập 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ông tin thêm 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