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.
API uy tín
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.
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
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.
Đặ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.
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.
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.
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 trị các ứng dụng, Client ID và API key máy chủ của bạn.
Đă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