使用IronRouter进行Accounts.onLogin

mfi*_*nov 5 meteor iron-router

我正在尝试在登录后将用户重定向到页面.尝试使用Accounts.onLogin回调中的Router.go:

Accounts.onLogin () ->
  Router.go('users.new')
Run Code Online (Sandbox Code Playgroud)

当我在服务器上尝试这个时,我得到了 TypeError: Object [object Object] has no method 'go'

在客户端我得到 Accounts.onLogin undefined

sai*_*unt 1

好吧,你这里有一个问题:

Accounts.onLogin在客户端上未定义,因为它是仅用于服务器的 API。

更新 15/06/2015 :这不再是真的,Accounts.onLogin现在也可以在客户端上使用。

Router.go 在服务器上未定义,因为使用 iron:router 进行重定向是仅限客户端的 API。

如果您正在使用,{{> loginButtons}}可以在客户端上尝试此解决方法:

Tracker.autorun(function(){
  if(Meteor.user()){
    // login handler
    Router.go("users.new");
  }
  else{
    // logout handler
  }
});
Run Code Online (Sandbox Code Playgroud)

如果您使用的是自定义登录表单Meteor.loginWithSomething,则可以在登录方法的成功回调中执行重定向。