Chuyển đến nội dung chính

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ă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 & khôi phục mật khẩuQuy trình quên mật khẩu
Quản lý mãGiữ người dùng đăng nhập an toànTự động làm mới phiên
Xác thực qua Email / SMS / PushGửi mã kích hoạtXá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()phoneSMSphonePush 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ộ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ứcChứ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