Composer [UnexpectedValueException] 错误将尝试使用 composer 安装 github 项目

Llo*_*oyd 46 composer-php

我正在尝试使用 composer 安装 github 项目并收到以下错误

作曲家 [UnexpectedValueException] 您的 github.com 的 Github oauth 令牌包含无效字符:“”

谁能解释我需要做什么来纠正这个错误?

我正在使用以下命令

composer create-project --prefer-dist --stability=dev vova07/yii2-start yii2-start

谢谢

raf*_*ten 62

我开始收到类似的错误,原因是 Github 最近更改了他们的身份验证令牌的格式:

https://github.blog/changelog/2021-03-31-authentication-token-format-updates-are-generally-available/

要解决错误:

  1. 找到该composer/auth.json文件(如果您在容器中运行该项目,则必须对其进行 bash 并在其中找到该文件)
  2. 删除其github.com条目。删除条目后,您的文件可能如下所示:{"github-oauth": {}}
  3. 运行self-update作曲家。问题在版本中得到解决2.0.12。在此处查看该版本的变更日志中的第一项:https : //getcomposer.org/changelog/2.0.12

之后,您可以将composer/auth.json文件恢复到其初始状态,因为较新版本的 composer 将识别新的密钥格式。

  • 我用“{}”替换了“~/.composer/auth.json”以传递错误。/sf/answers/2712241521/讲到哪里可以找到这个目录YMMY (5认同)
  • 即使我尝试自我更新,我也会遇到同样的错误,我无能为力 (4认同)
  • 自更新成功了吗?从那时起,这对我来说就成功了。 (2认同)
  • 我只需在运行项目的容器内运行以下命令:“php /usr/local/bin/composer self-update”,它对我有用。 (2认同)
  • @DarkteK 从 `~/.config/composer/auth.json` 文件中删除 `github-oauth` 行,运行 Composer self-update 并将删除的行添加回 auth.json (2认同)

kev*_*vnk 52

您可以尝试使用基本身份验证:

更改此(oauth):

  "github-oauth": {
    "github.com": "ghp_[YOUR-PERSONAL-TOKEN]"
  }
Run Code Online (Sandbox Code Playgroud)

为此(基本身份验证):

  "http-basic": {
    "github.com": {
      "username": "[YOUR-GITHUB-USERNAME]",
      "password": "ghp_[YOUR-PERSONAL-TOKEN]"
    }
  }
Run Code Online (Sandbox Code Playgroud)

您可以找到有关如何创建个人访问令牌的说明

灵感来自github 文档。显然,在某些情况下,您可以使用带有个人访问令牌而不是 oauth 的基本身份验证(例如,像我的一样:使用 composer 安装私有 git 存储库)。

  • 除非您可以将 Composer 更新到 v2,否则这是唯一有效的解决方案。谢谢! (4认同)

小智 18

我修好了它。

转到 C:\Users\XXXXX\AppData\Roaming\Composer

打开 auth.json

删除“github-oauth”下的 github.com 条目:{}

就是这样。

  • Composer 似乎对令牌进行了相当积极的验证。如此激进,以至于将我的 GitHub 令牌更新为新格式给我带来了这个错误。我正在运行 Composer 2.0.8,我必须删除令牌并更新到 Composer 2.0.12,然后重新应用令牌。 (4认同)

fud*_*udu 10

更新 Masiorama 和 Ruchir Mehta 的答案:

如果您正在查找文件 auth.json 但不知道如何查找,请使用以下命令:

找到 auth.json

结果如下:
您可以看到auth.json将如下所示:

/home/{您的用户名}/.config/composer/auth.json

在此处输入图片说明

然后你可以使用这个命令来编辑文件:

须藤 gedit /home/dev/.config/composer/auth.json

并删除github-oauth中的内容。 在此处输入图片说明


希望它有帮助。


小智 9

如果您使用的是 MacOS,则该auth.json文件位于~/.composer/auth.json. 然后从那里,您可以删除 的值github-oauth。我尝试完全删除该文件,但出现解析错误Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['. 您的auth.json文件应如下所示:

{
        "github-oauth": {}
}
Run Code Online (Sandbox Code Playgroud)

这类似于发布的其他答案,但我无法locate在 MacOS 上使用该命令,因此这可能对其他 Mac 用户有所帮助


00-*_*BBB 7

这个错误最近不知从何而来。

只需删除整个身份验证文件对我有用......!不知道为什么/什么时候它首先出现。

〜/.composer/auth.json


Mas*_*ama 5

据我所知(我也是作曲家的初学者),问题在于您的身份验证,因此您必须在 path-to-composer/.composer/ 内的 auth.json 中修复您的凭据

在里面你会发现一个 json ,它可能看起来像:

{
  "github-oauth": {
    "github.com": null
  }
}
Run Code Online (Sandbox Code Playgroud)

解决这个问题,你应该没问题;)

  • 对于那些在 Linux 上查找上述路径的人来说:` ~/.config/composer/auth.json` 今天花了很多功夫才找到这个:) (5认同)
  • 如果您不知道如何手动修复,更简单的解决方案是完全删除 auth.json。这样,它会在您下次准备项目时尝试重新创建凭据。;) (4认同)