Firebase实例DecodedIdToken是否具有自定义声明?

时间:2020-03-29 03:23:56

标签: firebase firebase-authentication google-cloud-functions

我们可以像这样在前端获得用户的自定义声明:

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

因为文档没有说明自定义声明...

1 个答案:

答案 0 :(得分:1)

按照我阅读文档的方式,我认为它包含自定义声明。查看其“可索引”功能:

可索引

[key: string]: any

代表解码的Firebase ID令牌的接口,从 verifyIdToken()方法。

[key: string]: any是TypeScript,用于表示除单独详细描述的特定属性外,它还支持常规的字符串查找。这表明您应该能够在对象中找到(可能是)自定义声明的其他项目。

这也很简单地说,它与verifyIdToken()返回的值相同,这就是在使用Admin SDK时如何获得自定义声明。因此,我建议您尝试一下。如果按您的预期无法使用,请file a feature request with Firebase support

相关问题