Meteor AccountTemplates/UserAccounts - how to run code on email verify?

148 views Asked by At

I've got some code I want to run after the user verifies their email.

Where would I put that?

The only place I can think is a redirected route, but that's a bit hacky, and relies on the user waiting for the redirect to happen. I'm using iron-router.

This was my first attempt, but the recalculate function is server-side.

AccountsTemplates.configureRoute('verifyEmail', {
  redirect: function(){
    var user = Meteor.user();
    if (user) {
      user.recalculateSignUpReputation();
      Router.go('home');
    }
  }
});

Here's a solution observing a cursor but that seems like overkill. I'd prefer an event. Solution #1 didn't work for me.

1

There are 1 answers

0
Michael Cole On BEST ANSWER

thanks for the comments. I ended up doing this.

AccountsTemplates.configureRoute('verifyEmail', {
  redirect: function(){
    var user = Meteor.user();
    if (user) {
      Meteor.call('recalculateSignUpReputation');
      Router.go('home');
    }
  }
});

It works client side, and makes a call to the server-side code. Not awesome, but works. If you have a different/better way, I'll mark it the correct answer.