Hyperledger Composer配置Google OAuth2后获取访问令牌失败
嘿,我之前在配置Hyperledger Composer的Google OAuth2时也碰到过一模一样的问题!这个ECONNREFUSED错误核心就是你的Composer REST服务器没办法连接到Google的OAuth2服务端去获取访问令牌,给你几个实用的排查和解决方向:
先排查网络连通性
先确认运行Composer REST服务器的机器能正常访问Google的OAuth相关服务。你可以在终端里跑这两个命令测试:ping accounts.google.com curl https://oauth2.googleapis.com/token如果这两个命令都失败,那大概率是网络层面的问题——比如防火墙拦截了出站请求、所在地区/网络限制访问Google服务,或者需要配置代理才能上网。
核对OAuth2配置的端点正确性
检查你启动composer-rest-server时传入的Google OAuth参数,或者对应的配置文件,重点看token请求端点是不是正确的。Google官方的token端点是https://oauth2.googleapis.com/token,要是你填错了地址,自然连不上目标服务器。配置代理(如果你的环境需要)
如果你的机器必须通过代理才能访问外部网络,那Composer REST服务器可能没继承代理配置,导致没法和Google的服务通信。启动服务器的时候可以手动指定代理环境变量:HTTP_PROXY=http://你的代理地址:端口 HTTPS_PROXY=http://你的代理地址:端口 composer-rest-server或者把代理信息加到系统环境变量里,确保Composer进程能读取到。
复查Google Cloud Console的客户端配置
再回到Google Cloud Console里检查你的OAuth客户端ID配置:- 确认授权重定向URI完全匹配
http://localhost:3000/auth/google/callback,端口、路径一个都不能错 - 核对Composer配置里填的客户端ID和客户端密钥,有没有输错字符或者大小写
- 确认授权重定向URI完全匹配
另外如果是本地开发环境,也可以试试临时关闭本地防火墙或者VPN,有时候这些工具会悄悄拦截出站的HTTPS请求。
内容的提问来源于stack exchange,提问作者T_murder

