Firebase 在firestore中设置自定义声明
我正在使用Firebase身份验证。我想使用自定义声明 但事实上,我不明白我该如何实现这一点 我想用登录用户的公司id详细信息对其进行身份验证 我的所有文档都包含公司id,因此我希望为该文档提供任何访问权限,只有用户的公司id等于该公司id时,才会保存在文档中 我发现我们可以将自定义声明用于其他身份验证目的。 它是一个移动应用程序 在手机中,通过手机调用firebase.auth().signInWithCustomToken(token)并获取UID 我想知道如何设置自定义声明? 通过解码令牌,我们可以得到如下的详细信息Firebase 在firestore中设置自定义声明,firebase,google-cloud-firestore,firebase-authentication,firebase-security,Firebase,Google Cloud Firestore,Firebase Authentication,Firebase Security,我正在使用Firebase身份验证。我想使用自定义声明 但事实上,我不明白我该如何实现这一点 我想用登录用户的公司id详细信息对其进行身份验证 我的所有文档都包含公司id,因此我希望为该文档提供任何访问权限,只有用户的公司id等于该公司id时,才会保存在文档中 我发现我们可以将自定义声明用于其他身份验证目的。 它是一个移动应用程序 在手机中,通过手机调用firebase.auth().signInWithCustomToken(token)并获取UID 我想知道如何设置自定义声明? 通过解码令牌
{
"iss": "",
"sub": "",
"aud": "",
"uid": "920",
"iat": 1600950391,
"exp": 1600953991,
"claims": {
"company_id": 29,
"tenant_code": ""
}
}
我想在我的文件上写规则
我试着写下这个。。但所有数据丢失我登录了一个公司id=29的用户,但所有记录都丢失了
我的规则怎么了
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /irrig_sets/{irrigrecord} {
allow write : if request.auth.uid != null && request.auth.token.claims.company_id == resource.data.company_id;
allow read: if request.auth.uid != null && request.auth.token.claims.company_id == resource.data.company_id;
}
match /{collectionname}/{ranch} {
allow read, write: if true
&& collectionname!= "irrig_sets";
}
}
}
我不知道我写的代码是否完美
我真的被firebase的这些规则困住了。。
我的代码有什么问题?
我怎样才能写出正确的规则
我想给irrig_week中所有记录的读写权限,从索赔中获得公司id
或者存在任何替代方法来实现这一点
或者从请求中获取特定id并检查id是否等于iRig_week提供的公司id并允许访问该唯一公司的任何其他想法?不能直接从您的移动应用程序设置自定义声明。这将是一个安全漏洞,允许用户为自己授予您可能不批准的事情的权限
您应该使用在安全后端上设置自定义声明,如中所示。如果您没有后端,则需要设置一些内容,并找出从应用程序调用它的最佳方式。感谢您的重播。。但在解码令牌后,我得到了这个。所以它在身份验证请求中不可用。。我检查了文件。。。