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

访问PrestaShop Webservice API时返回401未授权错误如何解决?

Prestashop 1.7 Webservice 401未授权错误排查方案

1. 修复Authorization头透传问题

AWS Lightsail默认的Prestashop运行环境多为Apache + PHP-FPM,Authorization头默认会被Web服务丢弃,是该问题最高发的原因:

  • 编辑站点根目录下的.htaccess文件,在RewriteEngine On规则下方新增配置:
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
    
  • 若使用Nginx环境,在站点配置的PHP处理location段添加:
    fastcgi_pass_header Authorization;
    fastcgi_param HTTP_AUTHORIZATION $http_authorization;
    
  • 保存配置后重启Web服务,重试请求。

2. 校准Webservice权限配置

  • 登录Prestashop后台,进入「高级参数」→「Webservice」页面,确认「启用 PrestaShop 的 webservice」开关为开启状态
  • 找到当前使用的密钥,确认除了激活状态外,已经勾选了对应接口的访问权限(查看/编辑/删除等,按需配置)
  • 若使用FastCGI部署,直接开启页面中的「是否启用 CGI 模式」选项。

3. 验证请求格式正确性

  • 浏览器访问API时,身份验证弹窗需要将密钥作为用户名填写,密码栏留空,不要将密钥填入密码输入框
  • Python请求格式参考:
    import requests
    API_KEY = "后台生成的完整密钥"
    API_URL = "https://你的域名/api/"
    resp = requests.get(API_URL, auth=(API_KEY, ""))
    print(resp.status_code, resp.text)
    
  • 密钥大小写敏感,不要前后添加多余空格、特殊字符。

4. 排查网络拦截规则

  • 确认Lightsail实例防火墙、站点安全模块没有拦截/api/*路径的请求
  • 若站点开启了HTTPS,直接用HTTPS协议访问API,避免HTTP跳转HTTPS时丢失请求头
  • 若使用了CDN、WAF服务,确认相关配置没有拦截Authorization请求头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:36:00