Is there a way to know that a user clicked on the verification link?

随声附和 提交于 2019-12-06 05:09:25

问题


Here's the code I'm using to send a verification email (taken from the official docs)

var user = firebase.auth().currentUser;

user.sendEmailVerification().then(function() {
  // Email sent.
}).catch(function(error) {
  // An error happened.
});

User object has emailVerified property. It doesn't change when user clicks the link in the mail. It only updates on re-login. Is there a way for an app to know that a user sucessfully verified their address?


回答1:


firebaser here

There is no client-side callback that triggers when the user clicks the verification link.

We've seen a feature request to trigger Cloud Functions when a user verifies their email address, but no updates on whether/when that will come. (Also see: Cloud Functions for Firebase - action on email verified)

The best I can think of now is to call User.reload() occasionally to get the updated properties.




回答2:


You can add a continueUrl when sending an email verification to redirect back to your app: https://firebase.google.com/docs/auth/web/passing-state-in-email-actions

var actionCodeSettings = {
  url: 'https://www.example.com/?email=' + 
       firebase.auth().currentUser.email
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
  .then(function() {
    // Verification email sent.
  });

This will show a continue button after verification. You can use it to go back to the app or to some page where you can notify the original page via real time database of the verification.




回答3:


You can make sure whether the user clicked on the verification link by trying to get the user id for the current user from Firebase, when it's empty, then this means that the user clicked on verification link and a new user has been created.

FirebaseAuth mAuth = FirebaseAuth.getInstance();
if(!mAuth.getCurrentUser().getUid().equals("")){
// the user clicked on the verification link.
// a new user has been created.
}
else{
// the user didn't click on the verification link.
// No user created.
}


来源:https://stackoverflow.com/questions/46938037/is-there-a-way-to-know-that-a-user-clicked-on-the-verification-link

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!