【发布时间】:2017-06-12 11:10:00
【问题描述】:
使用 firebase admin SDK 创建用户后,如何发送验证电子邮件?
我正在尝试结合 createUser function 和 sendEmailVerification function
有人可以指出提示或答案吗?谢谢
更新:
用户创建由已在应用程序中登录的管理员用户完成,因此管理员用户只是在仪表板上创建用户。这与注册方式完全不同。
更新 2:
我尝试关注bojeil's answer,但我仍然坚持用户使用自定义令牌登录的步骤。它与我当前的管理员用户会话发生冲突,管理员用户被踢出,而是新用户登录,即使我退出新用户,管理员用户仍然退出,需要登录才能重新进入应用程序。
这是我获得自定义令牌后在应用程序中的代码:
$http.post('/.custom-token', {uid: $scope.data.data.uid})
.then(function (response) {
console.log("custom token here:", response.data.token);
firebase.auth().signInWithCustomToken(response.data.token)
.then(function (firebaseUser) {
firebaseUser.sendEmailVerification();
firebase.auth().signOut().then(function() {
// Sign-out successful.
console.log("signed out success");
}, function(error) {
// An error happened.
});
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
});
所以,我获得了令牌,登录新用户,发送电子邮件验证链接,然后注销新用户。 但是我正在执行所有这些操作的管理员用户也会被注销。 我在这里错过了什么?
【问题讨论】:
-
嗨!我正在研究类似的东西。您是如何克服管理员注销问题的?
-
你应该在 sendEmailVerification() 的 then 函数中调用 signOut 函数。由于 sendEmailVerification 是异步的,所以你应该等到执行完成后再调用 signOut 函数。
标签: angularjs firebase firebase-authentication firebase-admin