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

使用PowerShell通过GitHub Apps JWT获取安装令牌遇401未授权问题

排查GitHub App安装令牌401未授权错误(PowerShell环境)
  • 核对JWT核心参数与算法
    确认Generate-JWT-FromGithub函数使用RS256签名算法,GitHub仅支持该算法。同时检查JWT的有效期:exp声明必须是当前时间加不超过600秒(10分钟),超时或过期都会导致401。可以直接解码生成的JWT,验证iss字段是否与APP_ID完全一致,exp时间是否在有效范围内。

  • 检查PEM私钥的加载与格式
    确保PEM文件无多余换行、空格,首尾的-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----完整无缺。PowerShell读取时用Get-Content -Raw命令,避免拆分文本导致私钥不完整,影响签名有效性。

  • 校验API请求头的正确性
    Get-InstallationToken函数的请求头必须严格符合要求:

    $headers = @{
        "Authorization" = "Bearer $generatedJwt"
        "Accept" = "application/vnd.github.v3+json"
    }
    

    注意Bearer后必须有空格,且必须指定Accept头为GitHub v3版本格式,缺少或格式错误会触发认证失败。

  • 确认App安装的权限与关联关系
    检查GitHub App的安装是否正确关联了目标组织/仓库,且App拥有足够的权限(比如至少配置read:org或对应仓库权限)。若权限有修改,需重新安装App以刷新权限配置。

  • 处理PowerShell的Base64编码问题
    生成JWT的Base64部分必须是URL安全格式:把编码后的+替换为-,/替换为_,并去掉末尾的=。PowerShell默认Base64编码不满足该要求,需手动处理编码结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:32:06