跳转到主要内容

重要安全聲明

安全第一原則:在開發和部署第三方應用時,安全性是最重要的考慮因素。必須嚴格遵守以下安全原則,確保用戶資料和授權流程的安全性。
  1. 絕對禁止在前端 JavaScript 程式碼中暴露 client_secret
  2. 必須在伺服器端處理 OAuth 授權碼交換 token 的過程
  3. 必須透過後端 API 代理存取受保護的用戶資源
  4. 必須使用 HTTPS 協定保護所有 OAuth 通訊
違反以上任何一條安全原則都可能導致嚴重的安全漏洞!

📋 目錄

  1. 概述
  2. 接入準備
  3. OAuth2 授權流程
  4. API介面文件
  5. SDK和程式碼範例
  6. 安全最佳實踐
  7. 常見問題
  8. 技術支援

概述

我們提供基於 OAuth2 標準的開放 API,允許第三方應用安全地存取用戶的基本資訊和帳戶餘額。透過我們的 OAuth2 服務,您的應用可以:
  • 🚀 一鍵登入:用戶無需重複註冊,登入完成即自動授權,真正的無縫體驗
  • 👤 取得用戶資訊:存取用戶的基本資料(用戶名、電子郵件等)
  • 💰 查看帳戶餘額:即時取得用戶的帳戶餘額資訊
  • 🔄 儲值跳轉:引導用戶到我們的儲值頁面進行帳戶儲值
  • 🔐 自動token刷新:內建 refresh token 機制,無感刷新過期 token,提升用戶體驗

接入準備

1. 註冊開發者帳戶

首先,您需要在我們的系統中註冊一個開發者帳戶。

2. 建立 OAuth 應用

在開發者控制台中建立您的 OAuth 應用:
API 呼叫範例
回應範例:
安全重要提醒:
  • client_id 可以在前端使用(公開資訊)
  • client_secret 只能在伺服器端使用,絕不能暴露給瀏覽器
  • 請將 client_secret 儲存在環境變數中,不要硬編碼在程式碼中

3. 配置回調地址

確保您的回調地址(redirect_uri)滿足以下要求:
  • 使用HTTPS協定(生產環境)
  • 指向您的伺服器端點(而非前端頁面)
  • 域名已備案且可正常存取
  • 路徑具體到處理回調的API端點

OAuth2 授權流程

安全流程圖

詳細步驟

步驟 1:引導用戶授權

在您的前端頁面添加登入按鈕,點擊後重定向到您的伺服器端授權端點:
前端程式碼 - 只負責重定向

步驟 2:伺服器端處理授權請求

在您的伺服器端實現授權處理:
伺服器端程式碼

步驟 3:處理授權回調(伺服器端)

伺服器端處理授權回調

步驟 4:前端獲取用戶資訊

前端透過 API 代理獲取用戶資訊
伺服器端API代理

API 介面文件

1. 授權端點

GET /api/oauth2/authorize 引導用戶進行 OAuth2 授權。 參數: 安全要求:
  • redirect_uri 必須與註冊時的地址完全匹配
  • state 參數必須是伺服器端生成的隨機字串
  • 必須使用 HTTPS 協定(生產環境)
Scope 說明:
  • profile:獲取用戶基本資訊(用戶名、電子郵件)
  • balance:獲取用戶帳戶餘額資訊

2. 令牌(Token)獲取端點

POST /api/oauth2/token
安全警告:此端點只能從伺服器端呼叫,絕不能在前端使用!
用於兩種場景:
  1. 使用授權碼換取存取令牌
  2. 使用刷新令牌獲取新的存取令牌
授權碼模式參數: 刷新令牌參數: 回應範例:

3. 用戶資訊端點

GET /api/oauth2/userinfo 獲取用戶基本資訊和帳戶餘額。 請求頭:
header
回應範例:
response

SDK 和程式碼範例

JavaScript SDK

我們提供了完整的 JavaScript SDK,您可以直接使用:

OAuth 回調頁面

建立 /oauth/callback.html 文件:

Node.js 後端範例

為了更好的安全性,建議在後端處理 client_secret

安全最佳實踐

1. 客戶端密鑰保護

  • ✅ 推薦:將 client_secret 儲存在後端伺服器
  • ❌ 避免:在前端JavaScript中暴露 client_secret

2. State 參數驗證

3. HTTPS 使用

  • 生產環境必須使用 HTTPS
  • 回調地址必須使用 HTTPS
  • 所有 API 請求使用 HTTPS

4. Token 安全儲存

5. 錯誤處理

常見問題

Q1: 如何實現真正的一鍵登入體驗?

A: 在授權URL中添加 auto_authorize=true 參數即可。這樣用戶登入完成後會自動完成授權,無需額外的確認步驟:

Q2: Token 會自動刷新嗎?

A: 是的,我們的 SDK 內置了自動 token 刷新機制:
  • 存取令牌:2小時有效期,過期前 5 分鐘自動刷新
  • 刷新令牌:30天有效期,用於獲取新的存取令牌
  • 無感刷新:所有 API 呼叫都會自動檢查並刷新過期的 token
  • 失敗重試:如果 API 返回 401 錯誤,會自動嘗試刷新 token 並重試
只有在刷新令牌也過期時,才需要用戶重新登入。

Q3: 可以獲取哪些用戶資訊?

A: 根據授權 scope,您可以獲取:
  • profile scope: 用戶名、電子郵件
  • balance scope: 帳戶餘額資訊

Q4: 如何測試 OAuth 整合?

A:
  1. 在開發環境中使用 HTTP localhost 進行測試
  2. 使用我們提供的測試工具驗證授權流程
  3. 檢查瀏覽器開發者工具中的網路請求

Q5: 支援哪些程式語言?

A: 我們提供標準的OAuth2 API,支援所有主流程式語言:
  • JavaScript/Node.js
  • Python
  • PHP
  • Java
  • C#/.NET
  • Go
  • Ruby

Q6: 如何撤銷用戶授權?

A: 用戶可以在我們的用戶中心 > 授權管理頁面撤銷對第三方應用的授權。

最後更新:2026-06-01