Meteor:在没有注销的情况下更改用户密码?

时间:2014-12-29 17:28:24

标签: javascript meteor

Accounts.setPassword(userId,password);

在Meteor v1.0.2之前,用户在调用此函数时没有注销。

从v1.0.2开始,我引用https://github.com/meteor/meteor/blob/devel/History.md,“在密码更改后的任何情况下都会使用户的密码重置和登录令牌失效”。

我不知道这种变化的原因,但事实是上面的功能退出了用户。

使用v1.0.2,有没有办法在不注销用户的情况下更改用户密码?

如果没有,我如何降级包帐户基础,以便行为像以前一样?

感谢。

3 个答案:

答案 0 :(得分:20)

Accounts.setPassword(userId, password, options)

此方法现在supports options参数包含options.logout选项,可用于阻止当前用户退出。

答案 1 :(得分:15)

您可以使用Accounts.changePassworddocs)来更改密码,这不会影响用户的现有代币(来自)https://github.com/meteor/meteor/blob/devel/packages/accounts-password/password_server.js#L299-L302

如果您想在不知道现有密码的情况下从服务器执行此操作,则必须分叉accounts-password包并删除此行:https://github.com/meteor/meteor/blob/devel/packages/accounts-password/password_server.js#L338并将此包添加到/packages你的应用目录

如果你想降级你的包(只要你使用meteor的版本支持它):

meteor remove accounts-password
meteor add accounts-password@1.0.3

答案 2 :(得分:4)

以上答案是正确的,以下是您遇到困难时的确切复制粘贴代码:

Accounts.setPassword(userId, password, {logout: false});

注意:确保您正在执行此呼叫服务器端。