一、WordPress REST API 登录简介
WordPress REST API 提供了一套标准的 HTTP 接口,允许开发者通过编程方式与 WordPress 站点交互。其中,用户登录是常见需求,可用于构建移动应用、单页应用(SPA)或第三方服务集成。
二、核心登录方法
1. 使用默认的 wp-json/jwt-auth 插件
适用场景:需要 Token 鉴权的应用
- 安装插件后,通过
POST /wp-json/jwt-auth/v1/token发送用户名和密码:
{
"username": "admin",
"password": "your_password"
}
- 返回的 JWT Token 可用于后续授权请求的
Authorization头。
2. 基础认证(Basic Auth)
注意:仅建议在开发环境使用
- 通过插件(如 Basic Auth)启用后,直接在请求头添加:
Authorization: Basic base64_encode(username:password)
3. 自定义 Cookie 认证
适用场景:传统浏览器端应用
- 调用
POST /wp-login.php获取登录 Cookie,后续请求自动携带。
三、安全实践
- 强制 HTTPS:所有登录请求必须通过加密传输
- 限流机制:防止暴力破解(如限制每分钟尝试次数)
- OAuth 2.0 扩展:复杂系统推荐使用插件(如 OAuth Server)
四、常见问题解决
- 403 错误:检查 REST API 权限(用户需有
edit_posts能力) - CORS 拦截:在
functions.php添加:
add_filter('rest_pre_serve_request', function($value) {
header('Access-Control-Allow-Origin: *');
return $value;
});
五、实战案例: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();
};
通过合理选择认证方式并遵循安全规范,WordPress REST API 登录能高效支撑各类应用场景。