Firebase-tools: firebase登录:令牌获取错误

创建于 2017-10-03  ·  45评论  ·  资料来源: firebase/firebase-tools

你好,

我在登录时遇到了一些问题。

版本信息

3.13.0

重现步骤

$ firebase login --no-localhost --debug

预期行为

成功登录

实际行为

$ firebase login --no-localhost --debug
[2017-10-03T18:14:05.541Z] ----------------------------------------------------------------------
[2017-10-03T18:14:05.546Z] Command:       /usr/local/bin/node /usr/local/bin/firebase login --no-localhost --debug
[2017-10-03T18:14:05.546Z] CLI Version:   3.13.0
[2017-10-03T18:14:05.546Z] Platform:      linux
[2017-10-03T18:14:05.546Z] Node Version:  v8.6.0
[2017-10-03T18:14:05.547Z] Time:          Tue Oct 03 2017 15:14:05 GMT-0300 (BRT)
[2017-10-03T18:14:05.547Z] ----------------------------------------------------------------------

? Allow Firebase to collect anonymous CLI usage and error reporting information? No

Visit this URL on any device to log in:
https://accounts.google.com/o/oauth2/auth?client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com&scope=email%20openid%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloudplatformprojects.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffirebase%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&response_type=code&state=866083077&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob

? Paste authorization code here: 4/9FxonAqbx4paDM4BWzPaSLFuLbAUaTB8bS65YK5R_vc
[2017-10-03T18:14:20.567Z] >>> HTTP REQUEST POST https://accounts.google.com/o/oauth2/token { code: '4/9FxonAqbx4paDM4BWzPaSLFuLbAUaTB8bS65YK5R_vc',
  client_id: '563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com',
  client_secret: 'j9iVZfS8kkCEFUPaAeJV0sAi',
  redirect_uri: 'urn:ietf:wg:oauth:2.0:oob',
  grant_type: 'authorization_code' } 
 Tue Oct 03 2017 15:14:20 GMT-0300 (BRT)
[2017-10-03T18:14:20.582Z] Token Fetch Error: Error
    at FirebaseError (/usr/local/lib/node_modules/firebase-tools/lib/error.js:11:17)
    at Request._callback (/usr/local/lib/node_modules/firebase-tools/lib/api.js:32:23)
    at self.callback (/usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js:186:22)
    at emitOne (events.js:115:13)
    at Request.emit (events.js:210:7)
    at Request.onRequestError (/usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js:878:8)
    at emitOne (events.js:115:13)
    at ClientRequest.emit (events.js:210:7)
    at ClientRequest.onError (/usr/local/lib/node_modules/firebase-tools/node_modules/tunnel-agent/index.js:179:21)
    at Object.onceWrapper (events.js:316:30)

Error: Authentication Error: Your credentials are no longer valid. Please run firebase login --reauth

For CI servers and headless environments, generate a new token with firebase login:ci

有人知道发生了什么吗?

最有用的评论

我有同样的问题,偶尔这对我有帮助:
set "NODE_TLS_REJECT_UNAUTHORIZED=0"
然后重新运行 firebase login

所有45条评论

你好,我也有同样的问题

我面临同样的问题,但使用“Firebase 登录”命令!
请对此提出解决方案?

我遇到了完全相同的问题。 我一直在尝试firebase loginfirebase login:ci--reauth--no-localhost--debug的不同组合,但无济于事。 此外,做一个明确的firebase logut并没有什么不同。 此外,我一直在使用三种不同的浏览器,即 Firefox、Chrome 和 Safari 来进行授权,看看这是否会有所作为。 它没有。

@thiagobonfante的“令牌获取错误”类型来看,我收到对 OAuth API 的 API 请求失败导致被拒绝的承诺: https ://github.com/firebase/firebase-tools/blob/b247ab9ca9e669d833ff830465c280e304d8b068/

请注意,来自 OAuth API 的响应(无论多么错误)将如何导致包含状态代码和响应正文的错误消息: https ://github.com/firebase/firebase-tools/blob/b247ab9ca9e669d833ff830465c280e304d8b068/lib/auth

接下来,尝试重新安装 Firebase 工具的 NPM 包,看看这是否会有所不同,NPM 以一种闻起来像 DNS 问题的方式失败。 我重新启动了计算机(macOS 10.12.6 Sierra),然后 NPM 安装和 Firebase 工具的重新验证都通过了。

因此,我无法确定这两个问题是否相关。 但是,如果您遇到此问题,可能只是尝试重新启动计算机。

@tblomseth就我而言,我已经尝试了你所说的一切。 第 83 行抛出了错误。

如果这仍然是一个问题,请重新打开。

我遇到了同样的问题。 我昨天尝试了同样的事情,它工作得很好。 但现在我收到授权错误。 我还附上了快照。

image

同样的问题......有什么解决办法吗?

同样的问题:(

同样的问题

同样的问题

像错误消息建议的那样运行firebase login --reauth是否有效?

同样的问题

没有@laurenzlong ,即使这样也没有用

我有同样的问题,偶尔这对我有帮助:
set "NODE_TLS_REJECT_UNAUTHORIZED=0"
然后重新运行 firebase login

@MrSuhov谢谢,它真的有效!

@MrSuhov谢谢,也为我工作!

同样的问题

同样的问题-我已经尝试了以上所有方法,但我没有使用代理,这似乎也是一个原因。

版本信息

4.0.1

平台信息

视窗

重现步骤

$ firebase 登录 --no-localhost --debug

预期行为

成功登录

实际行为

PS C:_angular\flow-v6.2.4> firebase login --no-localhost --debug
[2018-08-01T16:31:54.980Z] -------------------------------------- --------------------------------
[2018-08-01T16:31:54.996Z] 命令:C:\Program Files\nodejs\node.exe C:\Users\patrick\AppData\Roamingnpm\node_modules\firebase-tools\binfirebase login --no-localhost - -调试
[2018-08-01T16:31:54.996Z] CLI 版本:4.0.1
[2018-08-01T16:31:54.997Z] 平台:win32
[2018-08-01T16:31:54.997Z] 节点版本:v9.10.1
[2018-08-01T16:31:54.998Z] 时间:2018 年 8 月 1 日星期三 18:31:54 GMT+0200(浪漫 (zomertijd))
[2018-08-01T16:31:54.998Z] -------------------------- --------------------------------

? 允许 Firebase 收集匿名 CLI 使用情况和错误报告信息吗? 不

在任何设备上访问此 URL 以登录:
https://accounts.google.com/o/oauth2/auth?client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com&scope=email%20openid%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloudplatformprojects.readonly% 20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffirebase%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&response_type=code&state=781119839&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0% 3Aoob

? 在此处粘贴授权代码:4/AAAcSvs3St9DxIT5uTp-uj0Eln5YzWpq_zz7IPv0EUxV00lY_n9kSvA
[2018-08-01T16:32:11.524Z] >>> HTTP 请求发布https://accounts.google.com/o/oauth2/token
{代码:'4/AAAcSvs3St9DxIT5uTp-uj0Eln5YzWpq_zz7IPv0EUxV00lY_n9kSvA',
client_id: '563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com',
client_secret: 'j9iVZfS8kkCEFUPaAeJV0sAi',
重定向uri:' urn:ietf :wg: oauth:2.0 :oob',
授予类型:“授权代码”}
2018 年 8 月 1 日星期三 18:32:11 GMT+0200(浪漫 (zomertijd))
[2018-08-01T16:32:11.626Z] 令牌获取错误:错误
在新的 FirebaseError (C:\Users\patrick\AppData\Roamingnpm\node_modules\firebase-tools\liberror.js:11:16)
在 Request._callback (C:\Users\patrick\AppData\Roamingnpm\node_modules\firebase-tools\lib\api.js:35:11)
在 self.callback (C:\Users\patrick\AppData\Roamingnpm\node_modules\firebase-tools\node_modules\request\request.js:185:22)
在 Request.emit (events.js:180:13)
在 Request.emit (domain.js:421:20)
在 Request.onRequestError (C:\Users\patrick\AppData\Roamingnpm\node_modules\firebase-tools\node_modules\request\request.js:877:8)
在 ClientRequest.emit (events.js:180:13)
在 ClientRequest.emit (domain.js:421:20)
在 TLSSocket.socketErrorListener (_http_client.js:395:9)
在 TLSSocket.emit (events.js:180:13)

错误:身份验证错误:您的凭据不再有效。 请运行 firebase login --reauth

对于 CI 服务器和无头环境,使用 firebase login:ci生成新令牌

附加说明

基于此问题,我尝试了以下解决方法:

  1. npm 卸载 -g firebase-tools
  2. 重新启动计算机
  3. npm install -g firebase-tools
  4. firebase 登录 => 成功登录!
  5. firebase list => 错误:身份验证错误:您的凭据不再有效。 请运行 firebase login --reauth
  6. firebase login => 已经以* *@gmail.com 身份登录
  7. firebase 注销 => ! 无效的刷新令牌,不需要取消授权

    • 从登出

  8. firebase loginfirebase login --no-localhost --debug => 同上

有人可以帮忙吗?
我需要尽快部署我的应用程序的新版本。
谢谢。

我遇到了同样的问题。 我重新启动了我的机器——重新启动 Docker 可能就足够了,但是嘿!——然后运行docker system prune

一旦 Docker 完全新鲜,我再次运行我的构建,它工作得很好。

我还在我的构建脚本中添加了set "NODE_TLS_REJECT_UNAUTHORIZED=0" ......所以这也有帮助吗?

如果您在中国,请在控制台中设置类似 shadowsocks 的代理。
~/.zshrc

function proxy() {
    export http_proxy="http://192.168.1.100:1087"
    export https_proxy="http://192.168.1.100:1087"
    export all_proxy="http://192.168.1.100:1087"
}

function unproxy() {
    unset http_proxy https_proxy all_proxy
}

我也面临同样的问题。 这是我的日志..

localhost:functions gradler$ firebase login --no-localhost --debug
[2019-03-18T07:46:03.766Z] -------------------------------------- --------------------------------
[2019-03-18T07:46:03.769Z] 命令:/usr/local/bin/node /usr/local/bin/firebase login --no-localhost --debug
[2019-03-18T07:46:03.770Z] CLI 版本:6.5.0
[2019-03-18T07:46:03.770Z] 平台:达尔文
[2019-03-18T07:46:03.770Z] 节点版本:v11.2.0
[2019-03-18T07:46:03.770Z] 时间:2019 年 3 月 18 日星期一 16:46:03 GMT+0900(韩国标准时间)
[2019-03-18T07:46:03.770Z] -------------------------------------- --------------------------------

? 允许 Firebase 收集匿名 CLI 使用情况和错误报告信息吗? 是的

在任何设备上访问此 URL 以登录:
https://accounts.google.com/o/oauth2/auth?client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03xxxxxxx.apps.googleusercontent.com&scope=email%20openid%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloudplatformprojects.readonly% 20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffirebase%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&response_type=code&state=111287150&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0% 3Aoob

? 在此处粘贴授权码:4/EAHhdfZTTEq50Xbdh6Cv4no5ZjeO-xxxx
[2019-03-18T07:46:17.983Z] >>> HTTP 请求发布https://accounts.google.com/o/oauth2/token
代码=4/EAHhdfZTTEq50Xbdh6Cv4no5ZjeO-xxxx,client_id=563584335869-fgrhgmd47bqnekij5xxxxxxxx.apps.googleusercontent.com,client_secret=j9iVZfS8kkCEFUPxxxx,redirect_uri= urn:ietf :wg: oauth:2.0 :oob,grant_type=
[2019-03-18T07:46:18.022Z] 令牌获取错误:错误
在新的 FirebaseError (/usr/local/lib/node_modules/firebase-tools/lib/error.js:9:18)
在 Request._callback (/usr/local/lib/node_modules/firebase-tools/lib/api.js:30:31)
在 self.callback (/usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js:185:22)
在 Request.emit (events.js:182:13)
在 Request.EventEmitter.emit (domain.js:441:20)
在 Request.onRequestError (/usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js:881:8)
在 ClientRequest.emit (events.js:182:13)
在 ClientRequest.EventEmitter.emit (domain.js:441:20)
在 TLSSocket.socketErrorListener (_http_client.js:399:9)
在 TLSSocket.emit (events.js:182:13)

错误:身份验证错误:您的凭据不再有效。 请运行 firebase login --reauth

对于 CI 服务器和无头环境,使用 firebase login:ci生成新令牌

解决它的一种方法是:

firebase logout这将使您注销并使用firebase login重新登录

@tennessine 嘿,老哥,这个是在哪个文件设置的?在linux服务器上的吗?

得到同样的问题 Token Fetch Error: Error; 有人对如何解决它有一些提示吗?

我能够解决我这边的问题; 这实际上与该问题有关: https ://github.com/firebase/firebase-admin-node/issues/115

修复了它添加丑陋的代码 process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0; 在请求调用之前的 api.js

谢谢@tennessine。 你的方法对我有用。
@cnscorpions ,我正在使用:

赢10
Cmder(bash) # 那么我们就可以在windows上使用Linux的命令了
Shadowsocks-windows

在您提取cmder的路径中找到user_profile.sh文件,它可能类似于C:\Users\Cmder\config
然后添加以下功能(再次感谢@tennessine

function pxyo() {
    export http_proxy="http://127.0.0.1:1080"
    export https_proxy="http://127.0.0.1:1080"
    export all_proxy="http://127.0.0.1:1080"
        echo 'proxy-on'
}

function pxyf() {
    unset http_proxy https_proxy all_proxy
        echo 'proxy-off'
}

注意
我使用端口 1080(默认本地端口),所以我像上面一样设置
和 127.0.0.1 用于 shadowsocks

然后用pxyo打开set,现在就可以登录firebase了。
如果您再次登录失败,请检查您的连接使用curl www.google.com
这个对我有用。

我跑了firebase login --debug并且输出显示了我:

[2019-08-27T22:59:17.587Z] ----------------------------------------------------------------------
[2019-08-27T22:59:17.590Z] Command:       /usr/local/bin/node 
[2019-08-27T22:59:17.590Z] CLI Version:   7.2.2
[2019-08-27T22:59:17.590Z] Platform:      darwin
[2019-08-27T22:59:17.590Z] Node Version:  v10.15.3
[2019-08-27T22:59:17.591Z] Time:          Tue Aug 27 2019 15:59:17 GMT-0700 (Pacific Daylight Time)
**[2019-08-27T22:59:17.591Z] Env Overrides: FIREBASE_CLIENT_SECRET**
[2019-08-27T22:59:17.591Z] ----------------------------------------------------------------------

我使用变量 FIREBASE_CLIENT_SECRET 却不知道 firebase 也依赖它。 浪费了几个小时...检查调试以查看您是否在不知不觉中覆盖了环境变量。 取消设置变量后,我可以立即登录。

刚刚遇到这个 - 如上所示,它看起来在 POST 请求上失败了,需要很长时间才能回来:

[2019-09-03T04:50:55.231Z] 令牌获取错误:错误
在新的 FirebaseError (/usr/local/lib/node_modules/firebase-tools/lib/error.js:9:18)
在 Request._callback (/usr/local/lib/node_modules/firebase-tools/lib/api.js:30:31)
在 self.callback (/usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js:185:22)
在 Request.emit (events.js:182:13)
在 Request.EventEmitter.emit (domain.js:441:20)
在 Request.onRequestError (/usr/local/lib/node_modules/firebase-tools/node_modules/request/request.js:881:8)
在 ClientRequest.emit (events.js:182:13)
在 ClientRequest.EventEmitter.emit (domain.js:441:20)
在 TLSSocket.socketErrorListener (_http_client.js:399:9)
在 TLSSocket.emit (events.js:182:13)

编辑:上述建议都没有奏效(包括设置 NODE_TLS_REJECT_UNAUTHORIZED)虽然没有尝试过代理的事情。

编辑 2:对我来说,这似乎是一些网络错误,我在 30 分钟后再次尝试了同样的事情,它奏效了。

运行 7.3.0 并恢复到 7.1.1

``firebase 登录 --reauth --no-localhost```

我得到令牌,粘贴它,过了很长时间,我得到

Error: Authentication Error: Your credentials are no longer valid. Please run firebase login --reauth

与 --debug

[2019-09-05T00:20:59.959Z] >>> HTTP REQUEST POST https://accounts.google.com/o/oauth2/token  
 code=4/qgGpDeAVtNXUoSZ5CYXn5APgtFKgI4wyc0Mtqbnb8XSQvuEJs0VvAvc, client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com, client_secret=j9iVZfS8kkCEFUPaAeJV0sAi, redirect_uri=urn:ietf:wg:oauth:2.0:oob, grant_type=authorization_code

等很久很久……

[2019-09-05T00:23:10.060Z] Token Fetch Error: Error
    at new FirebaseError (/home/enric/.asdf/installs/nodejs/10.16.0/.npm/lib/node_modules/firebase-tools/lib/error.js:9:18)
    at Request._callback (/home/enric/.asdf/installs/nodejs/10.16.0/.npm/lib/node_modules/firebase-tools/lib/api.js:30:31)
    at self.callback (/home/enric/.asdf/installs/nodejs/10.16.0/.npm/lib/node_modules/firebase-tools/node_modules/request/request.js:185:22)
    at Request.emit (events.js:198:13)
    at Request.EventEmitter.emit (domain.js:448:20)
    at Request.onRequestError (/home/enric/.asdf/installs/nodejs/10.16.0/.npm/lib/node_modules/firebase-tools/node_modules/request/request.js:881:8)
    at ClientRequest.emit (events.js:198:13)
    at ClientRequest.EventEmitter.emit (domain.js:448:20)
    at ClientRequest.onError (/home/enric/.asdf/installs/nodejs/10.16.0/.npm/lib/node_modules/firebase-tools/node_modules/tunnel-agent/index.js:179:21)
    at Object.onceWrapper (events.js:286:20)

Error: Authentication Error: Your credentials are no longer valid. Please run firebase login --reauth

For CI servers and headless environments, generate a new token with firebase login:ci

非常令人沮丧。 无法更改我的应用。 我喜欢 Firebase,但这种东西让我质疑在生产中使用它。

答案:
我还没有阅读整个更改以查看是否有其他人提出过建议。

Firebase 尊重您的标准 GCP Oauth2 令牌。
必须去浏览器获取代码似乎不是很 CI 或无头。
这对我们有用:
export GOOGLE_APPLICATION_CREDENTIALS=key.json # 其中 key.json 是您的服务帐户 json 文件
export FIREBASE_TOKEN=$(gcloud auth application-default print-access-token)

如果有人在带有自签名证书的公司代理后面使用 firebase-cli:

  1. 将代理设置设置为环境变量。
  2. 将环境变量 NODE_EXTRA_CA_CERTS 设置为自签名证书的路径。

在 bash 中:

export NODE_TLS_REJECT_UNAUTHORIZED=0

我有同样的问题,偶尔这对我有帮助:
set "NODE_TLS_REJECT_UNAUTHORIZED=0"
然后重新运行 firebase login

我可以在哪个文件中设置这个

我能够解决我这边的问题; 这实际上与该问题有关: firebase/firebase-admin-node#115

修复了它添加丑陋的代码 process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0; 在请求调用之前的 api.js

你能告诉我我在哪里可以找到这个吗?

在 bash 中:

export NODE_TLS_REJECT_UNAUTHORIZED=0

@daryoooooo只需在 bash 中执行

你能解释更多吗,因为我不知道是什么。 是 bash 吗?

2020 年 3 月 28 日星期六凌晨 4:42 Moa Lai [email protected]写道:

在 bash 中:

导出 NODE_TLS_REJECT_UNAUTHORIZED=0

@daryoooooo https://github.com/daryoooooo只需在 bash 中执行


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/firebase/firebase-tools/issues/486#issuecomment-605383768
或退订
https://github.com/notifications/unsubscribe-auth/AM6RWMW6POW2CZLJ76K3P5TRJVPYJANCNFSM4D5SJF7A
.

我有同样的问题,我断开了我的 vpn 连接并尝试了,它成功了!!!

请帮忙。 没有适合我的解决方案:(

无法为我解决,还有其他解决方案吗?

如果您在中国,请在控制台中设置类似 shadowsocks 的代理。
~/.zshrc

function proxy() {
  export http_proxy="http://192.168.1.100:1087"
  export https_proxy="http://192.168.1.100:1087"
  export all_proxy="http://192.168.1.100:1087"
}

function unproxy() {
  unset http_proxy https_proxy all_proxy
}

在 bash (Windows) 中运行以下命令:

set http_proxy=http://127.0.0.1:<port> & set https_proxy=http://127.0.0.1:<port>

它正在工作,谢谢。 我想也许通常 Shadowsocks 或 Clash 不适用于 bash。

@MoaLaiSkirulais的解决方案对我有用....

D:\Aarya's Files\Doctor Management APP\adminlte-v3\WEBSITE FOLDER\medical>firebase login
i Firebase 可选择收集 CLI 使用情况和错误报告信息,以帮助改进我们的产品。 数据是根据 Google 的隐私政策 (https://policies.google.com/privacy) 收集的,不会用于识别您的身份。

? 允许 Firebase 收集 CLI 使用情况和错误报告信息吗? 是的
i 要随时更改您的数据收集偏好,请运行firebase logout并再次登录。

在此设备上访问此 URL 以登录:
https://accounts.google.com/o/oauth2/auth?client_id=563584335869-fgrhgmd47bqnekij5i8b5pr03ho849e6.apps.googleusercontent.com&scope=email%20openid%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloudplatformprojects.readonly% 20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffirebase%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&response_type=code&state=22105336&redirect_uri=http%3A%2F%2Flocalhost%3A9005

正在等待认证...

错误:发生了意外错误。

请帮我解决一下这个。

此页面是否有帮助?
0 / 5 - 0 等级