【发布时间】:2014-04-17 22:45:13
【问题描述】:
我正在使用“accounts-base”和“accounts-password”包以及 Accounts.createUser 方法从登录表单创建用户(即我没有使用 accounts-ui 包)。
documentation 解释说这样创建的用户包含一个“服务”对象
"包含特定登录服务使用的数据。例如,它的 重置字段包含忘记密码链接使用的令牌,及其 resume 字段包含用于让您保持登录状态的令牌 会话。”
这是真的,使用我的登录表单创建的帐户都有 loginTokens。但是,当我刷新浏览器时,这些令牌被删除并且用户被注销。
文档似乎表明恢复令牌由 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" : [ ] } },
【问题讨论】:
-
Accounts.createUser是一个服务器函数。您如何在回调中访问Router.go客户端函数?请注意您将代码放在哪里... -
根据documentation,Account.createUser 在客户端和服务器上都可用。我在两者上都使用它,用于不同的目的,但就这个问题而言,效果是相同的:用户已成功创建,令牌已创建,但在浏览器中刷新页面会注销用户并删除令牌。我承认我不清楚应该发生什么,但只要说我不希望用户在页面刷新时退出,无论出于何种原因。
标签: meteor token resume accounts