APIUYTIN logo API uy tín

Nền tảng cung cấp hạ tầng xác thực bộ chọn tài khoản APIUYTIN
API rõ ràng.

Hạ tầng xác thực Google OAuth và quản trị thông tin xác thực API bảo mật cao cho các sản phẩm công nghệ cần tốc độ triển khai thần tốc mà vẫn nắm quyền kiểm soát dữ liệu tuyệt đối.

01Callback Web độc lập
02Ẩn thông tin xác thực an toàn
03Sanity-Backed Cloudflare
apiuytin / oauth-quickstart.mjs
OAUTH FLOW — CLIENT ID + API KEY
import crypto from "node:crypto";

const API_BASE = "https://apiuytin.pages.dev";
const CLIENT_ID = process.env.APIUYTIN_CLIENT_ID;
const API_KEY = process.env.APIUYTIN_API_KEY; // chỉ dùng ở máy chủ
const REDIRECT_URI = "https://app.example.com/auth/apiuytin/callback";

export function createLoginUrl() {
  const state = crypto.randomBytes(32).toString("hex");
  // Lưu state vào session máy chủ trước khi redirect.
  const loginUrl = new URL(`${API_BASE}/oauth/google`);
  loginUrl.search = new URLSearchParams({ client_id: CLIENT_ID, redirect_uri: REDIRECT_URI, state });
  return { state, url: loginUrl.toString() };
}
// Route GET /login: redirect người dùng tới createLoginUrl().url

export async function exchangeCode({ code, state, expectedState }) {
  if (!code || state !== expectedState) throw new Error("Callback hoặc state không hợp lệ");
  const response = await fetch(`${API_BASE}/api/auth/oauth/token`, {
    method: "POST", headers: { "content-type": "application/json" },
    body: JSON.stringify({ client_id: CLIENT_ID, api_key: API_KEY, code, redirect_uri: REDIRECT_URI })
  });
  const payload = await response.json();
  if (!response.ok) throw new Error(payload.error || "Đổi code thất bại");
  return payload; // access_token + user
}
POST https://apiuytin.pages.dev/api/auth/oauth/token

Tích hợp trong vài phút

Quy trình 3 bước chuẩn hóa theo luồng mã ủy quyền OAuth 2.0, an toàn tối đa cho ứng dụng web và di động.

01

Tạo dự án

Đặt tên và URL callback của sản phẩm. Nền tảng tự động sinh Client ID và API key; API key chỉ hiển thị một lần và có thể cấp lại khi cần.

02

Đưa Google vào luồng

Chuyển hướng người dùng tới endpoint OAuth của APIUYTIN. Bộ chọn tài khoản hiển thị các tài khoản APIUYTIN đã nhớ trên thiết bị; Google chỉ dùng khi thêm tài khoản hoặc xác thực thiết bị mới.

03

Đổi code lấy session

Sử dụng endpoint token cùng API key tại máy chủ của bạn. Tuyệt đối không để lộ API key trong trình duyệt hoặc kho mã nguồn công khai.

node / máy chủ tích hợp
import crypto from "node:crypto";

const API_BASE = "https://apiuytin.pages.dev";
const CLIENT_ID = process.env.APIUYTIN_CLIENT_ID;
const API_KEY = process.env.APIUYTIN_API_KEY; // chỉ dùng ở máy chủ
const REDIRECT_URI = "https://app.example.com/auth/apiuytin/callback";

export function createLoginUrl() {
  const state = crypto.randomBytes(32).toString("base64url");
  const loginUrl = new URL(`${API_BASE}/oauth/google`);
  loginUrl.search = new URLSearchParams({ client_id: CLIENT_ID, redirect_uri: REDIRECT_URI, state });
  return { state, url: loginUrl.toString() };
}

export async function exchangeCode({ code, state, expectedState }) {
  if (!code || state !== expectedState) throw new Error("Callback hoặc state không hợp lệ");
  const response = await fetch(`${API_BASE}/api/auth/oauth/token`, {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify({ client_id: CLIENT_ID, api_key: API_KEY, code, redirect_uri: REDIRECT_URI })
  });
  const payload = await response.json();
  if (!response.ok) throw new Error(payload.error || "Đổi code thất bại");
  return payload; // access_token + user
}

Quản lý dự án & thông tin xác thực

Quản trị các ứng dụng, Client ID và API key máy chủ của bạn.

Chưa có dự án nào

Đăng nhập bằng Google để tạo dự án và quản lý bộ thông tin xác thực tích hợp.

Đăng nhập Google

THÔNG TIN XÁC THỰC MỚI

Tạo dự án mới

URL HTTPS này được đưa vào danh sách cho phép chính xác và dùng để đối soát chuyển hướng OAuth sau khi người dùng xác thực Google.