一、WordPress REST API 登錄簡介
WordPress REST API 提供了一套標(biāo)準(zhǔn)的 HTTP 接口,允許開發(fā)者通過編程方式與 WordPress 站點交互。其中,用戶登錄是常見需求,可用于構(gòu)建移動應(yīng)用、單頁應(yīng)用(SPA)或第三方服務(wù)集成。
二、核心登錄方法
1. 使用默認(rèn)的 wp-json/jwt-auth
插件
適用場景:需要 Token 鑒權(quán)的應(yīng)用
- 安裝插件后,通過
POST /wp-json/jwt-auth/v1/token
發(fā)送用戶名和密碼:
{
"username": "admin",
"password": "your_password"
}
- 返回的 JWT Token 可用于后續(xù)授權(quán)請求的
Authorization
頭。
2. 基礎(chǔ)認(rèn)證(Basic Auth)
注意:僅建議在開發(fā)環(huán)境使用
- 通過插件(如 Basic Auth)啟用后,直接在請求頭添加:
Authorization: Basic base64_encode(username:password)
3. 自定義 Cookie 認(rèn)證
適用場景:傳統(tǒng)瀏覽器端應(yīng)用
- 調(diào)用
POST /wp-login.php
獲取登錄 Cookie,后續(xù)請求自動攜帶。
三、安全實踐
- 強(qiáng)制 HTTPS:所有登錄請求必須通過加密傳輸
- 限流機(jī)制:防止暴力破解(如限制每分鐘嘗試次數(shù))
- OAuth 2.0 擴(kuò)展:復(fù)雜系統(tǒng)推薦使用插件(如 OAuth Server)
四、常見問題解決
- 403 錯誤:檢查 REST API 權(quán)限(用戶需有
edit_posts
能力) - CORS 攔截:在
functions.php
添加:
add_filter('rest_pre_serve_request', function($value) {
header('Access-Control-Allow-Origin: *');
return $value;
});
五、實戰(zhàn)案例:React 前端登錄
const login = async (username, password) => {
const res = await fetch('https://yoursite.com/wp-json/jwt-auth/v1/token', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
return await res.json();
};
通過合理選擇認(rèn)證方式并遵循安全規(guī)范,WordPress REST API 登錄能高效支撐各類應(yīng)用場景。