api插件2

1. API 接口地址(端点)

所有接口基于 WordPress 默认 REST API 前缀,格式如下(替换 your-domain.com 为你的站点域名):
  • 基础地址:https://your-domain.com/wp-json/
  • 命名空间:custom-user/v1/
  • 完整接口示例:
    功能 请求方法 接口地址
    用户注册 POST https://your-domain.com/wp-json/custom-user/v1/register
    用户登录 POST https://your-domain.com/wp-json/custom-user/v1/login
    积分查询 GET https://your-domain.com/wp-json/custom-user/v1/points/123(123 为用户 ID)
    积分更新 POST https://your-domain.com/wp-json/custom-user/v1/points/123
    用户组查询 GET https://your-domain.com/wp-json/custom-user/v1/user-group/123
    用户组修改 POST https://your-domain.com/wp-json/custom-user/v1/user-group/123
    会员到期查询 GET https://your-domain.com/wp-json/custom-user/v1/member-expire/123
    会员到期更新 POST https://your-domain.com/wp-json/custom-user/v1/member-expire/123

2. PC 软件调用示例(POST 请求,JSON 格式)

(1)用户注册

  • 请求头:Content-Type: application/json
  • 请求体:
    json
    {
        "username": "test_api_user",
        "email": "test_api@example.com",
        "password": "TestApi@123456"
    }
    
  • 成功返回:
    json
    {
        "success": true,
        "message": "用户注册成功",
        "data": {
            "user_id": 123,
            "username": "test_api_user",
            "email": "test_api@example.com",
            "register_time": 1735689600
        }
    }
    

(2)用户登录

  • 请求体:
    json
    {
        "login": "test_api_user",
        "password": "TestApi@123456"
    }
    
  • 成功返回:包含用户信息和 32 位登录令牌

(3)积分增加

  • 请求体:
    json
    {
        "points": 50,
        "action": "add"
    }
    

3. 安全优化建议

  1. 替换简单令牌:生产环境建议安装「JWT Authentication for WP REST API」插件,替换内置 32 位令牌,提升安全性
  2. 限制跨域来源:将插件中 Access-Control-Allow-Origin: * 改为你的 PC 软件 IP / 域名(如 http://192.168.1.200
  3. 增加密码强度校验:在注册接口中添加密码强度判断(如长度≥8 位、包含大小写字母 + 数字 + 特殊字符)
  4. 接口频率限制:配合「Wordfence Security」插件,限制单 IP 接口调用频率,防止暴力注册 / 登录
  5. 定期备份插件:如需修改插件功能,建议先备份原文件,避免功能异常

五、插件扩展说明

  1. 新增自定义字段:如需添加「手机号」「用户头像」等字段,参考「积分 / 会员到期时间」的实现,新增 user_meta 字段即可
  2. 扩展接口功能:如需支持「批量更新积分」「批量修改用户组」,可在 custom_user_api_register_routes 函数中新增接口路由
  3. 修改返回数据:如需调整接口返回字段,直接修改对应回调函数中的 $response_data 数组即可
  4. 更改菜单位置:如需将「用户 API 设置」改为子菜单(如挂在「设置」下),将 add_menu_page 改为 add_submenu_page 即可