在了解到在最新的firebase中发送电子邮件验证是可能的后,尽管文档中没有,我还是想亲自测试一下。
使用以下代码段:
Auth.$onAuthStateChanged(function(firebaseUser) {
if (firebaseUser) {
console.log(firebaseUser);
if (firebaseUser.emailVerified) {
// console.log(firebaseUser.emailVerified);
toastr.success('Email verified');
} else {
toastr.info('Do verify email');
}
}
})
< code > console . log(firebase user . email verified)始终返回false,尽管发送验证已启动、电子邮件已收到并被点击。
使用电子邮件登录后,我立即检查用户是否已验证,如果未验证,则应发送电子邮件:
Auth.$signInWithEmailAndPassword(email, password)
.then(function(firebaseUser) {
if (!firebaseUser.emailVerified) {
firebaseUser.sendEmailVerification();
console.log('Email verification sent');
}
$state.go('home');
})
在我的 https://console.firebase.google.com/project/my-app-name/authentication/emails
下,默认情况下所有内容都是,验证链接为:
< code >点击此链接验证您的电子邮件地址。https://my-app-name.firebaseapp.com/__/auth/handler?mode=
我用于注册的电子邮件会收到验证电子邮件,但是,单击该链接不会将 user.emailVerified
更改为 true。
此处列出的步骤是否全部存在,还是在文档中找不到另一个步骤?
以一种非常简约的方式,这就是我最终得到的:
angular.module('theApp')
.controller('emailVerifyController', ['$scope', '$stateParams', 'currentAuth', 'DatabaseRef',
function($scope, $stateParams, currentAuth, DatabaseRef) {
// where currentAuth and DatabaseRef is what they sound like
$scope.doVerify = function() {
firebase.auth()
.applyActionCode($stateParams.oobCode)
.then(function(data) {
// change emailVerified for logged in User
// you can update a DatabaseRef endpoint in here
// whatever!
toastr.success('Verification happened', 'Success!');
})
.catch(function(error) {
$scope.error = error.message;
toastr.error(error.message, error.reason, { timeOut: 0 });
})
};
}
])
然后在模板中,如下所示:
<a ng-click="doVerify()" class="button large">Verify my Account</a>
尽管AngularFire尚未包装<code>applyActionCode</code>程序,但您仍然可以在AngularJS中使用SDK的普通Javascript,此外,为什么不呢!
我在Firebase中分享有关电子邮件验证的更多详细信息:
https://blog.khophi.co/email-verification-firebase-3-0-sdk/
我只是采取了同样的步骤:
auth.currentUser.emailVerified
假
auth.currentUser.sendEmailVerification()
然后
auth.currentUser.emailVerified
真实的
注意步骤3和4:我需要再次登录,然后emailVerated
的新值在我的应用程序中可见。
这个答案似乎也很重要,但我在写了上面的内容后才发现它:Firebase确认电子邮件未发送
正如Tope在评论中提到的,您需要执行< code > firebaseUser . reload()来更新对firebase user的身份验证状态的更改。
我正在使用RNfirebase与我的react-native应用程序。我可以得到电子邮件验证链接来打开我的应用程序,但仅此而已。我知道我需要访问链接并解析它以获得oobCode并将其应用于用户。但是,当我使用该链接打开应用程序时,我从'react-native'中使用{Linking}触发的监听器似乎没有检测到该URL。我想将他们重定向到“感谢您验证您的电子邮件”页面,以及使用由Firebase生
我正在使用AWS Cognito进行电子邮件验证,但我遇到的用户注册问题是,它只发送验证代码,无法自定义电子邮件,因此我可以重定向用户,以便在Cognito上验证其电子邮件。使用。net core 2.1 C#。 到目前为止,我得到的是使用亚马逊提供的SES发送电子邮件验证码。 我想使用电子邮件验证链接验证用户电子邮件。
嗨,伙计们,我正在尝试在我的应用程序中进行自动登录,但在登录完成之前,我想知道用户是否验证了他的电子邮件或否。 问题是:即使我验证了我的帐户,代码也看不到这个并说是假的。 这是我的密码。 这条线总是假的,即使我验证了我的帐户。
问题内容: 我检查了用户是否通过电子邮件验证。但是,无论我发送并确认了多少电子邮件,验证状态仍为。检查时我做错什么了吗? 问题答案: 我如何实现此功能的方法是添加一个 带有时间间隔的,它将检查用户是否已通过验证,然后在完成验证后终止计时器。 检查您当前用户状态的功能:
我检查了用户是否通过电子邮件进行验证。但是,无论我发送并确认了多少封电子邮件,验证状态仍然是。我在检查时是否做错了什么?
如果我打开在桌面浏览器上收到的电子邮件中的链接,则用户的电子邮件被成功验证(标志FirebaseUser.isemailVerificed返回true) 然而,我尝试使用深度链接。因此,如果用户点击移动设备上的链接,将在应用程序中重定向,我有深度链接监听器。我希望当我收到应用程序内的深度链接数据时,isemailverificed标志会立即更新,但事实并非如此)。实际上,即使在按下链接时,也应该进