调用GitHub API身份验证失败,对应curl命令的报错原因是什么?
问题原因及解决方案
核心问题1:用户名密码验证方式已废弃
GitHub 自2021年8月起,所有API和Git操作的身份验证不再支持账户密码直接作为凭据,因此你第一条使用用户名密码验证的命令本身已经无法生效。
核心问题2:PAT验证的curl命令存在两处格式错误
-u参数使用不符合规范:curl的-u参数要求传入用户名:凭据的格式,使用PAT验证时,需要将PAT作为密码字段填写,你当前只传入了PAT内容,缺失了用户名部分,导致验证信息不完整。- 行内注释格式错误:Shell环境下的行内注释仅支持
#开头,你在命令末尾添加的/*注释内容*/不会被识别为注释,会被当做异常参数传入curl,导致请求出错。
正确写法
推荐使用更直观的Authorization头传递PAT:
curl -H "Authorization: Bearer ghp_I60uniHdf6UKDCkyde1InP7kwRwsw2fD0wx" https://api.github.com/user
如果要使用-u参数写法,格式如下:
curl -u devmania1223:ghp_I60uniHdf6UKDCkyde1InP7kwRwsw2fD0wx https://api.github.com/user
注意:使用前请确认你的PAT已经勾选了
user相关权限,否则即使格式正确也会报错。
内容的提问来源于stack exchange,提问作者avantdev
相关产品推荐
相关产品推荐

