Accounts.setPassword(userId,password);
在Meteor v1.0.2之前,用户在调用此函数时未注销.
从v1.0.2开始,我引用https://github.com/meteor/meteor/blob/devel/History.md,"在密码更改后的所有情况下都会使用户的密码重置和登录令牌失效".
我不知道这种改变的原因,但事实是上面的功能退出用户.
使用v1.0.2,有没有办法在不注销用户的情况下更改用户密码?
如果没有,我如何降级包帐户基础,以便行为像以前一样?
谢谢.
rom*_*oma 20
Accounts.setPassword(userId, password, options)
Run Code Online (Sandbox Code Playgroud)
此方法现在支持 options
包含options.logout
可用于阻止当前用户注销的选项的参数.
Aks*_*hat 15
您可以使用Accounts.changePassword
(docs)来改变密码,这不会影响用户的现有令牌(来自)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
Run Code Online (Sandbox Code Playgroud)
上面的答案是正确的,如果您遇到困难,这里是确切的复制粘贴代码:
Accounts.setPassword(userId, password, {logout: false});
Run Code Online (Sandbox Code Playgroud)
注意:确保您是在服务器端进行此调用。