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

Azure上Bitnami WordPress编辑用户时‘Application Passwords’错误及API调用问题

解决Bitnami WordPress无HTTPS下的API认证问题

一、优先方案:开启HTTPS以使用原生应用密码

应用密码功能强制要求HTTPS,Bitnami环境配置SSL非常便捷:

  • 执行Bitnami自带的证书配置脚本:
    sudo /opt/bitnami/bncert-tool
    
  • 按照向导完成Let's Encrypt证书的申请和配置,自动开启HTTPS。
  • 配置完成后回到WordPress后台的用户编辑页面,即可正常生成应用密码,将其替换你代码中的原生密码,原有的Basic Auth逻辑可直接使用,且安全性更高。

二、无需HTTPS的替代认证方案

如果暂时无法启用HTTPS,可选择以下两种方式:

1. JWT认证插件

安装JWT Authentication for WP REST API插件,步骤如下:

  • 激活插件后,编辑WordPress根目录下的wp-config.php,添加配置:
    define('JWT_AUTH_SECRET_KEY', '生成一个随机字符串作为密钥');
    define('JWT_AUTH_CORS_ENABLE', true);
    
  • 修改Python代码为JWT认证逻辑:
    import requests
    import json
    
    # 获取JWT Token
    auth_url = "http://my-site/wp-json/jwt-auth/v1/token"
    auth_data = {
        'username': 'user',
        'password': '你的WordPress原生密码'
    }
    token_response = requests.post(auth_url, data=auth_data)
    token = token_response.json()['token']
    
    # 发布文章
    api_url = "http://my-site/wp-json/wp/v2"
    headers = {'Authorization': f'Bearer {token}'}
    post_data = {
        'date'    : '2023-05-24T10:00:00',
        'title'   : 'Hello World',
        'status'  : 'publish', 
        'content' : 'This is my first post created using rest API'
    }
    post_response = requests.post(f"{api_url}/posts", headers=headers, json=post_data)
    print(post_response)
    

注意:HTTP环境下JWT传输存在安全风险,仅建议在测试环境使用。

2. XML-RPC(不推荐)

  • 进入WordPress后台「设置-撰写」,启用XML-RPC功能。
  • 使用wordpress_xmlrpc库实现发布:
    from wordpress_xmlrpc import Client, WordPressPost
    from wordpress_xmlrpc.methods.posts import NewPost
    
    wp_client = Client('http://my-site/xmlrpc.php', 'user', '你的WordPress原生密码')
    
    new_post = WordPressPost()
    new_post.title = 'Hello World'
    new_post.content = 'This is my first post created using XML-RPC'
    new_post.date = '2023-05-24T10:00:00'
    new_post.post_status = 'publish'
    
    wp_client.call(NewPost(new_post))
    

缺点:XML-RPC安全性极低,易被暴力破解,不建议生产环境使用。

三、绕过HTTPS限制使用应用密码

安装Application Passwords Without SSL插件,可直接绕过HTTPS限制启用原生应用密码功能,生成应用密码后替换你原有代码中的password字段即可,无需修改代码逻辑。


内容的提问来源于stack exchange,提问作者Frankie Chiu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:37:26