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

Nginx正向代理未传递Authorization头,Notion API鉴权失败求助

问题分析与解决方案

你的核心问题是Nginx正向代理时未转发Authorization请求头,导致Notion API返回未授权响应。大概率是配置中缺少显式转发该头的规则,以下是具体排查和修复方案:

常见配置问题与修复

Nginx默认会转发多数请求头,但Authorization这类敏感头在代理外部域名时可能被过滤,必须显式配置转发。请检查你的Nginx配置,确保包含以下关键规则:

正确的正向代理配置示例

server {
    listen 80;
    # 替换成你的代理服务域名或localhost(本地测试用)
    server_name localhost;

    location / {
        # 处理Chrome扩展的跨域请求,必须返回正确CORS头
        add_header Access-Control-Allow-Origin "*";
        add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS";
        add_header Access-Control-Allow-Headers "Authorization, Notion-Version, Content-Type";

        # 快速响应OPTIONS预检请求,避免跨域失败
        if ($request_method = OPTIONS) {
            return 204;
        }

        # 代理到Notion API地址
        proxy_pass https://api.notion.com;
        # 显式转发Authorization头,这是解决问题的核心
        proxy_set_header Authorization $http_authorization;
        # 转发Notion API必需的其他头
        proxy_set_header Notion-Version $http_notion_version;
        proxy_set_header Host api.notion.com;
        proxy_set_header Content-Type $http_content_type;

        # 确保开启请求头转发(默认开启,显式声明更稳妥)
        proxy_pass_request_headers on;
    }
}

排查步骤

  1. 确认请求头是否到达Nginx:在Nginx配置中添加自定义日志格式,记录Authorization头:

    log_format proxy_log '$remote_addr - [$time_local] "$request" '
                         '$status "$http_authorization"';
    access_log /var/log/nginx/proxy_access.log proxy_log;
    

    重启Nginx后查看日志:如果$http_authorization字段为空,说明Chrome扩展的请求没把头发送到代理,需检查扩展的请求逻辑;如果有值,说明Nginx没转发,添加上述proxy_set_header Authorization规则即可。

  2. 检查跨域配置:Chrome扩展属于跨域请求,若Nginx未返回正确的CORS头,浏览器可能不会在实际请求中携带Authorization头,务必确保Access-Control-Allow-Headers包含Authorization。

关于Nginx正向代理的说明

Nginx做正向代理的方案非常成熟,只是反向代理的场景更常见。只要配置好请求头转发和跨域规则,完全可以胜任扩展与Notion API之间的中转需求,无需担心支持性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:22:07