WordPress REST API 應用程式密碼完整教學:產生、認證與安全使用指南 - Mr. 蔡大痣數位轉型顧問 - WordPress 及 SEO 專家

文章分類/

WordPress REST API 應用程式密碼完整教學:產生、認證與安全使用指南

2 瀏覽

WordPress 從 5.6 版本起內建「應用程式密碼(Application Password)」功能,讓你能夠安全地授權外部程式透過 REST API 存取你的 WordPress 網站,而不需要直接暴露主帳號密碼。不論你是要用 Python 自動發文、串接 Zapier、還是自己開發 CLI 工具,都需要掌握這套認證流程。

什麼是 WordPress REST API 應用程式密碼?

應用程式密碼是一組獨立的 24 碼隨機密碼,專門用於 REST API 的 Basic Authentication 認證。它與你的主帳號密碼完全分開,具備以下特點:

  • 只能用於 API 認證,無法用來登入後台
  • 可以為不同應用各自產生獨立密碼
  • 隨時可以撤銷單一應用的存取權限
  • 系統會記錄每組密碼的最後使用時間與 IP

如何產生 WordPress 應用程式密碼?

產生應用程式密碼的步驟非常簡單,只需要在 WordPress 後台操作即可:

  1. 登入 WordPress 後台,點選左側選單「使用者」→「個人資料
  2. 滾動到頁面最底部,找到「應用程式密碼」區塊
  3. 在輸入框填入此密碼的用途名稱,例如:orca-wp-cli-toolZapier 串接
  4. 點擊「新增應用程式密碼」按鈕
  5. 系統會產生一組格式如 AbCd EfGh 1234 IjKl MnOp 5678 的密碼,請立即複製保存,之後無法再次顯示

⚠️ 注意:如果你的 WordPress 是在本機環境(沒有 HTTPS),預設不會顯示應用程式密碼區塊。可以在 wp-config.php 加入以下設定來強制啟用:

define( 'WP_ENVIRONMENT_TYPE', 'local' );

WordPress REST API Basic Authentication 認證原理

應用程式密碼使用 HTTP Basic Authentication 標準。每次 API 請求時,需要在 Header 中帶上 Base64 編碼的認證資訊:

Authorization: Basic base64(使用者名稱:應用程式密碼)

其中應用程式密碼中的空格可以保留,也可以去除,WordPress 都能正確辨識。

實際使用範例

Python(httpx / requests)

Python 最方便的方式是直接使用 auth 參數,不需要手動處理 Base64:

import httpx

WP_URL = "https://your-site.com/wp-json/wp/v2"
USERNAME = "your_username"
APP_PASSWORD = "AbCd EfGh 1234 IjKl MnOp 5678"

# 列出文章
with httpx.Client(auth=(USERNAME, APP_PASSWORD)) as client:
    resp = client.get(f"{WP_URL}/posts")
    print(resp.json())

# 新增文章
with httpx.Client(auth=(USERNAME, APP_PASSWORD)) as client:
    resp = client.post(f"{WP_URL}/posts", json={
        "title": "測試文章",
        "content": "文章內文",
        "status": "draft"
    })
    print(resp.json())

cURL 指令

# 取得文章列表
curl -X GET "https://your-site.com/wp-json/wp/v2/posts" \
  -u "your_username:AbCd EfGh 1234 IjKl MnOp 5678"

# 新增文章
curl -X POST "https://your-site.com/wp-json/wp/v2/posts" \
  -u "your_username:AbCd EfGh 1234 IjKl MnOp 5678" \
  -H "Content-Type: application/json" \
  -d '{"title":"測試標題","content":"內文","status":"draft"}'

JavaScript(Fetch API)

const username = 'your_username';
const appPassword = 'AbCd EfGh 1234 IjKl MnOp 5678';
const token = btoa(`${username}:${appPassword}`);

fetch('https://your-site.com/wp-json/wp/v2/posts', {
  headers: {
    'Authorization': `Basic ${token}`
  }
})
.then(res => res.json())
.then(data => console.log(data));

常見錯誤排除

錯誤訊息原因解決方式
401 Unauthorized帳號密碼錯誤確認使用者名稱(非 Email)與密碼是否正確
應用程式密碼區塊不顯示非 HTTPS 環境在 wp-config.php 加入 WP_ENVIRONMENT_TYPE 設定
403 Forbidden使用者權限不足確認該帳號有足夠的 WordPress 角色權限
密碼正確但仍然失敗安全外掛阻擋檢查 Wordfence 或類似外掛的設定

安全使用建議

  • 每個應用程式使用獨立的應用程式密碼,方便個別撤銷
  • 不要將密碼直接寫在程式碼中,改用 .env 檔案或設定檔管理,並加入 .gitignore
  • 定期檢查已授權的應用程式密碼列表,移除不再使用的項目
  • 務必在 HTTPS 環境下使用,避免密碼在傳輸過程中被截取
  • 結合 WordPress 使用者角色管理,給予 API 帳號最低必要權限

進階應用:用 Python CLI 工具管理 WordPress

掌握了應用程式密碼的使用方式後,你就可以進一步建立自己的 WordPress 自動化工具。透過 Python + httpx 打造 CLI 工具,讓你直接在終端機完成文章發佈、分類管理等日常操作,大幅提升工作效率。

應用程式密碼的設計讓這類自動化工具的安全性大幅提升——即使工具的設定檔外洩,攻擊者也無法使用該密碼登入你的 WordPress 後台,而你只需要在後台撤銷那組密碼即可,完全不影響主帳號的安全。

常見問題 FAQ

WordPress 應用程式密碼和一般登入密碼有什麼不同?

應用程式密碼只能用於 REST API 的 HTTP 認證,無法用來登入 WordPress 後台。即使應用程式密碼外洩,攻擊者也無法透過它登入你的網站,只需在後台撤銷該組密碼即可,不影響主帳號安全。

應用程式密碼產生後忘記複製怎麼辦?

應用程式密碼只會在產生當下顯示一次,之後無法再查看。若忘記複製,只能刪除該組密碼並重新產生一組新的,同時更新使用該密碼的所有應用程式設定。

一個帳號可以建立幾組應用程式密碼?

WordPress 對應用程式密碼的數量沒有限制。建議為每個應用程式或工具各自建立獨立的密碼,並以用途命名(例如 CLI 工具Zapier 串接),方便管理與個別撤銷。

為什麼我的 WordPress 後台沒有顯示應用程式密碼選項?

常見原因有兩個:一是網站在非 HTTPS 環境(本機開發),可在 wp-config.php 加入 define('WP_ENVIRONMENT_TYPE', 'local'); 強制啟用;二是安全外掛(如 Wordfence)可能將此功能停用,請檢查外掛設定。

應用程式密碼適合用在哪些場景?

適合用於伺服器對伺服器的自動化整合,例如:Python 或 Node.js 自動發文工具、CLI 管理工具、n8n / Zapier / Make.com 流程自動化、行動 App 或外部網站與 WordPress 的資料串接。若是公開給第三方使用的應用,建議改用 OAuth 2.0 進行更安全的授權流程。

▧ 文章分類

▧ 熱門文章

▧ 最新文章

✦ 虎鯨 OrcaBiz SEO 優化專業團隊 ✦

專業 SEO 公司幫助你將流量累積成看得見的業績,成為長期有效的最強業務!

[orca_infinite_scroll]