Nhảy đến nội dung

Đăng ký với Oauth

Trong ví dụ này, chúng tôi sẽ trình bày cách Đăng ký với Oauth

✅ Mục đích của kịch bản:

  • Người dùng đăng ký với nhà cung cấp OAuth (Google, Facebook, v.v.)
  • Xác thực người dùng với mã ủy quyền OAuth
  • Lấy dữ liệu người dùng đã xác thực sau khi quy trình OAuth thành công

✅ Những gì bạn cần:

  • Một PROJECT_URL và APP_TOKEN hợp lệ để xác thực với API OneEntry.
  • Thông tin xác thực của nhà cung cấp OAuth (client_id và client_secret) từ Google, Facebook hoặc nhà cung cấp khác.
  • Mã ủy quyền nhận được từ chuyển hướng của nhà cung cấp OAuth.
  • redirect_uri đã được cấu hình khớp với cái đã đăng ký với nhà cung cấp OAuth.

📌 Quan trọng:

  • Những ví dụ này không bao gồm xử lý lỗi.
  • Bạn có thể quản lý lỗi bằng cách sử dụng khối try-catch hoặc bằng cách sử dụng cấu trúc như await Promise.catch((error) => error).
  • Đảm bảo rằng formIdentifier được sử dụng trong phương thức updateUser() khớp với cái đã được cấu hình trong dự án OneEntry của bạn.

Kịch bản

1. Nhập defineOneEntry từ SDK và định nghĩa url và token

Ví dụ:

import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

2. Tạo một API client với hàm defineOneEntry()

Ví dụ:

const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

3. Đăng ký người dùng với AuthProvider.oauthSignUp()

Dữ liệu:

{
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "registration",
"redirect_uri": "http://localhost:3000",
"formData": {
"en_US": [
null
]
}
}

Ví dụ:

const signUpResponse = await AuthProvider.oauthSignUp('email', body).catch((e) => e);
Kết quả:
{
"statusCode": 403,
"timestamp": "2026-01-04T01:20:52.612Z",
"message": "Dữ liệu quyền không được tìm thấy. Cung cấp quyền cho url yêu cầu",
"pageData": null
}

4. Xác thực người dùng với AuthProvider.oauthSignUp()

Dữ liệu:

{
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "authorization_code",
"redirect_uri": "http://localhost:3000",
"formData": {
"en_US": [
null
]
}
}

Ví dụ:

const authResponse = await AuthProvider.oauthSignUp('email', authBody).catch((e) => e);
Kết quả:
{
"statusCode": 403,
"timestamp": "2026-01-04T01:20:52.792Z",
"message": "Dữ liệu quyền không được tìm thấy. Cung cấp quyền cho url yêu cầu",
"pageData": null
}

5. Bây giờ bạn có thể lấy dữ liệu người dùng với Users.getUser()

Ví dụ:

const userData = await Users.getUser();

Ví dụ cuối cùng

// 1. Nhập defineOneEntry từ SDK định nghĩa PROJECT_URL và APP_TOKEN
import { defineOneEntry } from 'oneentry';

const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';

// 2. Tạo một API client:
const { AuthProvider, Users } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});

// 3. Đăng ký người dùng với AuthProvider.oauthSignUp()
const body = {
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "registration",
"redirect_uri": "http://localhost:3000"
};
const signUpResponse = await AuthProvider.oauthSignUp('email', body).catch((e) => e);
// console.log(JSON.stringify(signUpResponse));

// 4. Xác thực người dùng với AuthProvider.oauthSignUp()
const authBody = {
"client_id": "34346983-luuct343473qdkqidjopdfp3eb3k4thp.apps.googleusercontent.com",
"client_secret": "43434343434",
"code": "4/0AVMBsJgwewewewewewei4D7T6E_fbswxnL3g",
"grant_type": "authorization_code",
"redirect_uri": "http://localhost:3000"
};
const authResponse = await AuthProvider.oauthSignUp('email', authBody).catch((e) => e);
// console.log(JSON.stringify(authResponse));

// 5. Bây giờ bạn có thể lấy dữ liệu người dùng với Users.getUser()
const user = await Users.getUser().catch((e) => e);
// console.log(JSON.stringify(user));