gpt4 book ai didi

node.js - 后端的 Firebase 管理员用于 verifyIdToken 并使用 Firestore

转载 作者:行者123 更新时间:2023-12-04 08:13:53 24 4
gpt4 key购买 nike

我正在尝试通过验证 Id token 在我的后端使用 Firebase Admin 进行“伪造”客户端身份验证,以便从后端使用 Firestore。
这个想法是将我的服务器用作我的客户端和 Firestore 之间的中间件。
我可以在后端初始化 FirebaseAdmin 并从客户端正确地进行 verifyIdToken() ,但之后我不知道使用 firestore 。你们能告诉我一个方法吗?

import * as firebaseAdmin from 'firebase-admin';
import firebaseServiceAccountKey from './firebaseServiceAccountKey.json';

if (!firebaseAdmin.apps.length) {
firebaseAdmin.initializeApp({
credential: firebaseAdmin.credential.cert(
firebaseServiceAccountKey
),
databaseURL: ##########################,
});
}

// This is working
function getUser(token) {
return firebaseAdmin
.auth()
.verifyIdToken(token)
.then((decodedToken) => {
return decodedToken;
})
.catch((error) => {
return error
});
}

/*
Now I want to use Firestore authenticated with this token, should I
import firebase from "firebase"
and then try auth() with token?
*/

最佳答案

通过 Admin SDK 访问 Firestore 始终具有完全管理权限。无法以您验证其 token 的用户身份访问 Firestore。
如果您想使用这种中间件方法,您必须确保它只访问用户在代码中获得授权的数据。
另见:

  • Pass user auth to Firestore from Cloud functions
  • How to make Firebase Functions act as a user instead of being an admin?

  • 如果目标是更严格地控​​制谁可以登录您的应用程序,请考虑改用自定义身份验证 - 服务器 薄荷糖 每个用户的自定义 token ,然后客户端 SDK 使用该 token 登录。

    关于node.js - 后端的 Firebase 管理员用于 verifyIdToken 并使用 Firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65807745/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com