我想使用firebase身份验证向用户的电子邮件发送电子邮件验证码。我正在使用(sendEmailVerification)方法,但firebase会向用户的电子邮件发送验证链接。是否可以将验证码发送到用户的电子邮件,如果是,那么如何完成?
我正在使用Angular 4和firebase angularfire2
感谢。
答案 0 :(得分:1)
如果不想使用firebase提供的解决方案,您必须自己处理所有流程,然后将用户emailVerified
数据更新为true
。
基本的3个步骤是:
1.使用您想要的“任何代码”向用户发送电子邮件
2.在您的逻辑中,验证用户输入的“代码”
3. use Firebase Admin SDK to update the user (您只能使用Admin SDK更新此用户属性)
步骤3示例,使用NodeJS
admin.auth().updateUser(uid, {emailVerified:true})
.then(function(userRecord) {
console.log("update success", userRecord.toJSON());
})
.catch(function(err) {
console.log("Error updating user", err);
});
答案 1 :(得分:0)
Firebase Auth现在支持在电子邮件验证流程中传递状态/继续URL的功能:https://firebase.google.com/docs/auth/web/passing-state-in-email-actions(网络和iOS,随着Android的推移)。与6位SMS码不同,这些码很长。因此,复制代码,特别是如果您在其他设备上打开电子邮件是不可行的。