2014-04-17 31 views
0

我正在使用'accounts-base'和'accounts-password'软件包以及Accounts.createUser方法从登录表单创建用户(即,我没有使用accounts-ui包)。流星帐户 - 用户注销刷新

documentation解释从而创建的用户包括“服务”对象

“含有由特定的登录服务所使用的数据,例如,其 复位字段包含由忘记密码链接中使用的令牌,并且其 resume字段包含令牌,用于保持您在 会话之间登录。“

这是真的,使用我的登录表单创建的帐户都有loginTokens。但是,当我刷新浏览器时,这些令牌将被删除并且用户已注销。

该文档似乎暗示resume-token由accounts-base/accounts-password包自动处理。我错过了什么?

Accounts.createUser({ 
     username: username, 
     email: username, 
     password: password 
    }, function (err) { 
     if (err) { 
     alert(err) 
     } else {    
     Router.go('/member/' + Meteor.userId() +'/edit')    
     } 
    }); 

创建:

"resume" : 
{ "loginTokens" : 
    [ 
    { 
    "when" : ISODate("2014-04-17T22:13:50.832Z"), 
    "hashedToken" : "KstqsW9aHqlw6pjfyQcO6jbGCiCiW3LGAXJaVS9fQ+o=" 
    } 
    ] 
} 

...但在刷新:

"resume" : { "loginTokens" : [ ] } }, 
+0

'Accounts.createUser'是一个服务器功能。你如何在回调中访问'Router.go'客户端功能?注意你在哪里放置代码... –

+0

根据[documentation](http://docs.meteor.com/#accounts_createuser),Account.createUser在客户端和服务器上均可用。我在两种情况下都使用它,但对于不同的问题,这个问题的结果是相同的:用户被成功创建,创建了令牌,但刷新浏览器中的页面会将用户注销并删除令牌。我承认我不清楚应该发生什么,但足以说我不希望用户在页面刷新时出于任何原因而被注销。 –

回答

1

后我的代码详尽的审计,我发现,我是(白痴)调用Accounts.logout方法在注销按钮事件的范围之外。它不知何故成为'孤儿'在早期重新代码的代码

所以我所有的错。