auth.token.email 实时数据库与火力基础身份验证



在实时数据库规则中是可能的 验证身份验证中是否存在电子邮件?

因为我登录 在 https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY] 并获取idToken登录实时数据库, 但我想知道是否有办法验证 如果 auth.token.email = 身份验证电子邮件和已启用电子邮件 这是 idToken base64 解码的结果:

我需要知道身份验证用户中是否存在"电子邮件":"xx@xx.com">

{
"iss": "https://securetoken.google.com/xaxaxaxa",
"aud": "xaxaxaxa",
"auth_time": 1567541399,
"user_id": "xxxxaxxaxaxaxaxaxax",
"sub": "xaxaxaxaxaxaxaxa",
"iat": 1567541399,
"exp": 1567544999,
"email": "xx@xx.com",
"email_verified": false,
"firebase": {
"identities": {
"email": ["xx@xx.com"]
},
"sign_in_provider": "password"
}
}

安全规则无法检查某个电子邮件地址是否存在。他们所能做的就是读取令牌中的声明并据此采取行动。但通常令牌中有一个"email_verified"声明,可用于确保电子邮件地址已验证:

"someNode": {
".write": "auth.token.email_verified === true"
}

验证可以由提供商(例如 Google 和 Facebook 提供商(进行,也可以通过您自己的代码通过管理员 SDK 进行。

相关内容

最新更新