React Router + onEnter + Meteor Accounts


I’m currently trying to check to see if the user fits a role, if not send them to another page. The problem is that I get undefined for Meteor users. I login in on a seperate page and the callback shows me logged in. Not sure why - I feel like its a race condition (The meteor accounts is not ready yet) or I need to do a mixin but not sure how to do that in something thats not a class. Any thoughts?

My Router Code:
AppRoutes = (
/reversedarrow >Router >
/reversedarrow >Route path="/" component={App}>
/reversedarrow >IndexRoute component={Home} />
/reversedarrow >Route path="/admin" component={Admin} />
/reversedarrow >Route path="/login" component={Login} />
/reversedarrow >Route path="/dealerPortal" component={dealerPortal} onEnter={requireAuth} />
/reversedarrow >/Route>
/slreversedarrow >/Router>

My onEnter Code:

  function requireAuth(nextState, replaceState) {
    if(Meteor.user() != undefined) {
           if (Meteor.user().roles['default-group'][0] == 'dealer') {
            } else {
            replaceState({ nextPathname: nextState.location.pathname }, '/login')
   } else {
         replaceState({ nextPathname: nextState.location.pathname }, '/login')
1 Like

Try do requireAuth in components? Data in getMeteorDate is responsive

Did you find a solution to this? I would be really interested in learning what you did.