【发布时间】:2019-09-28 00:26:32
【问题描述】:
我正在关注 firebase/identity toolkit docs 以获取 SAML 身份提供者。成功登录后,重定向结果包含从提供者派生的属性:
provider = new firebase.auth.SAMLAuthProvider('saml.test-provider');
firebase.auth().signInWithRedirect(provider);
...
firebase.auth().getRedirectResult().then(function(result) {
if (result.credential) {
console.log(result.additionalUserInfo.profile) // Custom provider claims, e.g., {"provider-foo":"bar"}
}
}
从文档中,同样的值也可以通过
获得result.user.getIdTokenResult().idTokenResult.claims.firebase.sign_in_attributesfirebase.sign_in_attributes
这些相同的属性似乎没有存储在 firebase_admin SDK 中可访问的任何地方:
from firebase_admin import auth
user = auth.get_user(uid)
print(user.custom_claims) # => None ... *provider* claims aren't here
print(user.provider_data[0]) # => has `federatedId` and some others, but still no custom provider claims
有没有办法在管理 SDK 中获取此信息?有什么方法可以判断它是否被 Firebase 保存?我是否需要在 Firestore 中捕获它(这不会有风险,因为用户可以伪造来自提供商的声明吗?)
谢谢!
【问题讨论】:
标签: firebase firebase-authentication firebase-admin