# OAuth2 標準參數對照表 ## 📌 1. GetAuthorizationUrl (授權網址產生) | 參數名稱 | 是否標準 | 說明 | |-----------------------|--------------|------| | `client_id` | ✅ 是 | OAuth2 用戶端應用的 ID。 | | `redirect_uri` | ✅ 是 | 使用者授權後導回的 URI。 | | `response_type` | ✅ 是 | 通常為 `"code"`,表示要求授權碼。 | | `scope` | ✅ 是 | 權限範圍,用空格分隔。 | | `state` | ✅ 是 | CSRF 防護的隨機字串,會原樣返回。 | | `code_challenge` | ✅(PKCE) | 使用 PKCE 時,需傳入 SHA256 編碼結果。 | | `code_challenge_method`| ✅(PKCE) | 指定 PKCE 使用的方式,一般為 `S256`。 | > 備註:前五項為 OAuth 2.0 核心協定([RFC 6749](https://tools.ietf.org/html/rfc6749)),後兩項為 PKCE 擴充([RFC 7636](https://tools.ietf.org/html/rfc7636))。 --- ## 📌 2. GetAccessToken (授權碼換 Access Token) | 參數名稱 | 是否標準 | 說明 | |-----------------|----------|------| | `client_id` | ✅ 是 | 用戶端應用的 ID。 | | `client_secret` | ✅ 是 | 用戶端密鑰(公用應用可能不需要)。 | | `grant_type` | ✅ 是 | 固定為 `authorization_code`。 | | `code` | ✅ 是 | 使用者授權後取得的授權碼。 | | `redirect_uri` | ✅ 是 | 與授權階段使用的 URI 必須一致。 | | `code_verifier` | ✅(PKCE)| 搭配 `code_challenge`,原始未 hash 的字串。 | --- ## 📌 3. RefreshAccessToken (使用 Refresh Token 取得新 Access Token) | 參數名稱 | 是否標準 | 說明 | |-----------------|----------|------| | `client_id` | ✅ 是 | 用戶端應用的 ID。 | | `client_secret` | ✅ 是 | 用戶端密鑰(某些平台可省略)。 | | `grant_type` | ✅ 是 | 固定為 `refresh_token`。 | | `refresh_token` | ✅ 是 | 上一次取得的 refresh token。 | | `scope` | ✅(可選)| 有些平台允許重新指定 scope。 | --- ## 📝 其他建議補充參數(依平台而異) | 參數名稱 | 說明 | 適用平台 | |------------------|------|-----------| | `access_type=offline` | 要求授權時回傳 refresh_token | Google | | `prompt=consent` | 強制顯示授權畫面(避免 silent login) | Google | | `include_granted_scopes=true` | 自動保留使用者先前授權範圍 | Google | --- ## 🔒 安全建議 - 強烈建議所有公用用戶端(SPA、行動應用)**啟用 PKCE**。 - 儲存 `refresh_token` 時應加密保管,避免洩露。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.