jeh*_*jeh 8 mocha.js node.js firebase chai firebase-authentication
我需要使用节点对Firebase用户进行身份验证,以便我可以测试一些服务器端方法.对于每个受保护的请求,我使用以下方法验证Firebase令牌:
firebase.auth().verifyIdToken(firebaseAccessToken).then(function(decodedToken) {
// forward request
})
Run Code Online (Sandbox Code Playgroud)
因此,在我的测试中,我使用Firebase数据库中的uid创建了一个令牌
firebase.auth().createCustomToken(uid).then(function(token) {
//add to header for requests
})
Run Code Online (Sandbox Code Playgroud)
后来我读到自定义标记未经verifyIdToken方法验证,只有客户端生成的标记验证.
我看过这个答案 - 服务器端验证firebase中的令牌
所以我将databaseAuthVariableOverride添加到init json中
firebase.initializeApp({
credential: firebase.credential.cert(serviceAccount),
databaseURL: [dbURL],
databaseAuthVariableOverride: {
uid: [uid]
}
});
Run Code Online (Sandbox Code Playgroud)
在我的测试中仍然得到输出
Error: expected 200 "OK", got 401 "Unauthorized"
Run Code Online (Sandbox Code Playgroud)
并且火力山错误 -
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.
Run Code Online (Sandbox Code Playgroud)
那么如何使用我当前的设置模拟用户?
这是用于生成 Firebase ID 令牌(不是自定义令牌)的Python 脚本。
python firebase_token_generator.py <UID>
Run Code Online (Sandbox Code Playgroud)
可能有更简单的方法可以做到这一点,但您可以从 Node.js 调用 Python 脚本。
| 归档时间: |
|
| 查看次数: |
2046 次 |
| 最近记录: |