gpt4 book ai didi

firebase - 只允许具有特定自定义声明的用户调用 Firebase 函数

转载 作者:行者123 更新时间:2023-12-02 16:59:20 26 4
gpt4 key购买 nike

我有这个功能可以为用户设置自定义声明:

export const setUserClaims = functions.https.onRequest((req, res) => {
return admin.auth().setCustomUserClaims(req.body.uid, req.body.claims);
});

我只希望 super 管理员用户可以使用此功能,即由 {admin: true} 组成的自定义声明。

因此,管理员 可以通过调用此函数为支持人员设置用户声明。

我一直在搜索,但没有找到一个 100% 稳健和安全的明显答案。

我该怎么做?

最佳答案

您可以创建一个 HttpsCallable 云函数,这样它会自动从客户端获取经过身份验证的用户并将其与其他信息一起放入 context.auth 对象中。

函数可以是这样的:

async function myFunctionImpl(params, context) {

if (!context.auth.token.admin) {
throw new HttpsError('permission-denied');
}
// function code
}

export const myFunction = functions.https.onCall(myFunctionImpl);

要调用它,您可以使用函数客户端。这是一个网络示例:

await firebase
.functions()
.httpsCallable("myFunction")({example: "hello"});

这样,如果您在客户端对用户进行身份验证,它将把身份验证传递给函数。

关于firebase - 只允许具有特定自定义声明的用户调用 Firebase 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54824219/

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