You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发WordPress API移动端应用:每次请求发送认证信息是否为最佳实践?

WordPress REST API 移动端认证指南:不用每次传用户名密码

结论先行:完全不用每次请求都发用户名密码

WordPress REST API提供了多种持久化认证方案,只需要完成一次认证拿到凭证,后续用这个凭证就能保持登录状态,不用反复提交账号密码。

几种实用的实现方式

1. JWT 认证(移动端首选)

这是目前移动端最常用的方案,流程简单且安全:

  • 先安装「JWT Authentication for WP REST API」插件,然后在wp-config.php中添加配置(生成一个随机复杂密钥):
    define('JWT_AUTH_SECRET_KEY', '你的随机复杂密钥');
    define('JWT_AUTH_CORS_ENABLE', true);
    
  • 第一次请求调用/wp-json/jwt-auth/v1/token接口,POST传递username和password,接口会返回token和过期时间
  • 之后所有需要认证的API请求,在HTTP请求头里添加:Authorization: Bearer {你拿到的token}
  • 提醒:token会过期,要么在过期前调用刷新接口续期,要么在APP里记录过期时间,到期自动重新获取新token

如果你的APP和WP网站是同域名(比如APP访问yourdomain.com/api),可以用Cookie认证:

  • 第一次请求先获取nonce:调用/wp-json/wp/v2/users/me的OPTIONS方法,从响应头里提取X-WP-Nonce
  • 然后POST请求/wp-json/wp/v2/users/me,带上username、password、wp_rest: true和nonce: 刚才拿到的值
  • 服务器会返回Set-Cookie头,APP要把这些Cookie存起来,后续请求自动携带Cookie即可
  • 注意:移动端处理Cookie要适配各自平台的网络库,跨域场景下还要在WP后台配置CORS允许携带Cookie

3. 应用密码(WP官方原生支持,适合简单场景)

WP自带的应用密码功能,适合不想装插件的情况:

  • 先给用户开启双因素认证,然后在WP后台用户编辑页生成一个「应用密码」
  • 每次请求用Basic Auth:把用户名:应用密码做Base64编码,放在请求头Authorization: Basic {编码后的字符串}里
  • 提醒:应用密码是固定凭证,APP里要存在安全存储中,别用明文本地存储

安全必看

  • 所有请求必须使用HTTPS,防止凭证被截获
  • 移动端存储token或Cookie,要用系统提供的安全存储(比如iOS的Keychain、Android的EncryptedSharedPreferences),避免明文存储
  • 定期清理过期凭证,减少无效请求
  • JWT的密钥要设置得复杂且保密,不可泄露

内容的提问来源于stack exchange,提问作者Sarah Tammam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 20:38:12