我们可以像这样在前端获得用户的自定义声明:
const { claims } = await firebase.auth().currentUser.getIdTokenResult()
但是,在Cloud Functions中,每个可调用的Cloud Function都有一个上下文:
context: functions.https.CallableContext
这样,我们可以像这样访问请求用户的“用户令牌”:
context.auth.token
此令牌是DecodedIdToken(请参阅参考文档链接)
但是,我想知道我是否可以像这样访问该用户对DecodedIdToken
的自定义声明:
const { claims } = context.auth.token
因为文档没有说明自定义声明...
答案 0 :(得分:1)
按照我阅读文档的方式,我认为它包含自定义声明。查看其“可索引”功能:
可索引
[key: string]: any
代表解码的Firebase ID令牌的接口,从 verifyIdToken()方法。
[key: string]: any
是TypeScript,用于表示除单独详细描述的特定属性外,它还支持常规的字符串查找。这表明您应该能够在对象中找到(可能是)自定义声明的其他项目。
这也很简单地说,它与verifyIdToken()返回的值相同,这就是在使用Admin SDK时如何获得自定义声明。因此,我建议您尝试一下。如果按您的预期无法使用,请file a feature request with Firebase support。