我可以在Firebase身份验证中验证电子邮件域区域吗?
例如,我只想为来自yahoo和gmail ( @ yahoo.com, @ gmail.com电子邮件)
的电子邮件进行成功注册p.s。我当然可以在客户端验证它,但这还不够
答案 0 :(得分:1)
不幸的是,您无法在注册之前验证电子邮件的域(不包括客户端)。
您可以执行一些选择:
例如:
"rules": {
".read": "auth.token.email.endsWith('@gmail.com')",
".write": "auth.token.email.endsWith('@gmail.com')"
}
}
或类似这样:
"rules": {
".read": "auth.token.email_verified == true && auth.token.email.matches(/.*@gmail.com$/)",
".write": "auth.token.email_verified == true && auth.token.email.matches(/.*@gmail.com$/)"
}
}
积分:https://stackoverflow.com/a/38019847/2765346
例如:
exports.validateUser = functions.auth.user().onCreate((user) => {
if (!user.email.matches(/.*@gmail.com$/)) {
admin.auth().updateUser(data, {
disabled: true
});
}
});