本地Flask应用集成GitLab OAuth2的重定向URI配置咨询
GitLab OAuth2 本地集成重定向URI问题解答
正确的重定向URI格式
本地运行在localhost:80的HTTP服务,重定向URI必须填写完整的协议、主机、端口和回调路径,不能只写localhost:80。比如你的Flask应用里OAuth回调路由是/gitlab/callback,那对应的重定向URI应该是http://localhost:80/gitlab/callback。
GitLab的OAuth2验证要求重定向URI必须和应用注册时填写的完全匹配,包括路径部分,这就是你只填localhost:80时出现错误的原因。
为什么https://localhost:80会超时
HTTPS协议的默认端口是443,而80是HTTP协议的默认端口,https://localhost:80相当于用HTTPS协议去连接HTTP服务的端口,两者不兼容,自然会出现连接超时。如果要使用HTTPS,需要:
- 把本地服务改成在443端口运行,或者指定其他HTTPS端口
- 给本地服务配置SSL证书(可以用自签证书测试)
- 此时重定向URI改成
https://localhost/gitlab/callback(或对应端口的地址)
快速修复步骤
- 确认Flask应用里的回调路由路径,比如:
@app.route('/gitlab/callback') def gitlab_callback(): # 处理GitLab OAuth回调的逻辑,比如获取token、验证用户等 pass
- 登录GitLab,进入你的应用注册页面,把重定向URI更新为
http://localhost:80/gitlab/callback,保存设置。 - 确保Waitress服务确实在
localhost:80启动,启动命令示例:
waitress-serve --listen=localhost:80 your_flask_app:app
内容的提问来源于stack exchange,提问作者what's_in_a_name
相关产品推荐
相关产品推荐

