meteoriron-routermeteor-useraccounts

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


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.


Solution

  • 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.