-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] 使用 Nginx 将面板反代为 https 时, 无法正确生成 OAuth 的 回调 url 协议部分 #1000
Comments
根据提供的信息, |
问题应是出在两次生成的 redirect_uri 不一样, 第一次正确生成了 redirect_uri, 第二次则始终使用 http 进行请求. 在测试 Github 时, 得到以下报错:
在测试 Cloudflare 时正常工作 在测试 GitLab 时正常工作 在测试 Gitee 时正常工作 我认为第二次始终使用 http 请求的问题是存在的, 只是不同服务商对这种行为的宽容度不同导致部分服务还是取得了 token. 例如 Github 中只允许提供一个 而按照 RFC6749 - 4.1.3. Access Token Request 中对
综上所述, 我认为这应该是一个 BUG 我在 Nginx 中捕获了由 provider 请求的 URL , 确认回调的请求是由 https:// 开头的且 X-Forwarded-Proto 为 https, 只是在回调时不携带 HTTP 请求头 我还能够获取什么样的信息以帮助排除此问题吗? |
可以把 |
我昨天添加日志打印后尝试 build 了一下 docker 镜像,发现需要前端资源才行,我是真的对前端一窍不通,我应该怎样才能构建一个能编译的开发环境? |
运行 |
解决方案: 在 Nginx 代理中为路径而非整体配置设置 以下为添加的日志信息 日志打印测试我当前使用的 OIDC 服务提供商(之前无法登陆)
Github(之前无法登陆)
Gitlab
修改后的
|
运行环境
Ubuntu GNU/Linux 22.04.1-aarch64
Nezha 版本
v1.7.5 (Docker)
描述问题
使用 Nginx 将 Docker 安装的面板反代为 https 时, 无法正确生成 OAuth 的 回调 url 协议部分. 发送的回调地址永远为 http.
如果使用 Cloudflare 的代理, 即便不按照 Dashboard 反向代理配置 的指示进行修改依然能够正常工作.
复现步骤
/opt/nezha/dashboard/data/config.yaml
添加 OAuth 段落相关信息, , 修改后的 NeZha 配置将放在后面 "配置信息"cd /opt/nezha/dashboard/; docker compose down && docker compose up -d
重启 Nezha 并清空之前控制台的日志.https://nezha.host.domain/api/v1/oauth2/callback?...
得到{"error":"oauth2: \"invalid_grant\" \"Code not valid\""}
配置信息
NeZha Config:
Nginx Config:
附加信息
我一路追踪到了 这一行 可能是这里的问题.
我按照代码逻辑在 Nginx 中设置了 X-Forwarded-Proto 为 https, 并重写了 请求头中的 Request 字段为 https:// 开头, 依然无效.
验证
The text was updated successfully, but these errors were encountered: