我正在使用firebase身份验证来为登录的用户生成访问令牌,但我不知道如何在服务器端验证这一点。我正在测试它在Flutter,以确保它的工作,但这是一个两部分的问题:
1.如何在VS代码中测试Flutter访问令牌验证?这是我现在的代码(FirebaseAuth.instance里面没有verifyIdToken函数,所以我很困惑):
1.第二部分是我想验证我的Node JS服务器上的ID令牌-那么我必须打开哪些库,以及我可以使用的示例代码是什么?
更新基于以下Frank的回答:
这是我目前的代码,我不知道要导入什么,为什么它不工作:
const { initializeApp } = require('firebase-admin/app');
const app = initializeApp();
getAuth(app)
.verifyIdToken("TOKEN")
.then((decodedToken) => {
const uid = decodedToken.uid; console.log(uid);
// ...
})
.catch((error) => {
print("ERROR")
// Handle error
});
1条答案
按热度按时间bvjxkvbb1#
虽然Firebase客户端SDK(例如您正在使用的Flutter)可以解码ID令牌,但它们没有内置的公共方法来验证此类令牌。这并不难添加,但在客户端代码中这是一个不常见的用例。
如果你想自己实现它,ID令牌是一个JWT -所以任何在Flutter中解码JWT的解决方案都可以工作。例如,请参见How to get the claims from a JWT in my Flutter Application
要验证Node.js中的ID令牌,请查看verifying an ID token上的Firebase文档,其中包含用于Node.js的Firebase Admin SDK的示例: