node.js – 如何在服务器上创建Firebase令牌以用于单元测试?

我需要使用节点对Firebase用户进行身份验证,以便我可以测试一些服务器端方法.对于每个受保护的请求,我使用以下方法验证Firebase令牌:

firebase.auth().verifyIdToken(firebaseAccesstoken).then(function(decodedToken) {
    // forward request
})

因此,在我的测试中,我使用Firebase数据库中的uid创建了一个令牌

firebase.auth().createCustomToken(uid).then(function(token) {
    //add to header for requests
})

后来我读到自定义标记未经verifyIdToken方法验证,只有客户端生成标记验证.

我看了这个答案 – server side verification of tokens in firebase

所以我将databaseAuthVariableOverride添加到init json中

firebase.initializeApp({
  credential: firebase.credential.cert(serviceAccount),databaseURL: [dbURL],databaseAuthVariableOverride: {
    uid: [uid]
  }
});

在我的测试中仍然得到输出

Error: expected 200 "OK",got 401 "Unauthorized"

并且火力山错误

Error: Decoding Firebase ID token Failed. Make sure you passed the entire string JWT which represents an ID token. See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retrieve an ID token.

那么如何使用我当前的设置模拟用户

解决方法

这是一个 Python script for generating Firebase ID tokens (not custom tokens).

python firebase_token_generator.py <UID>

有可能更简单的方法,但您可以从Node调用Python脚本.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...