流星:在不注销的情况下更改用户密码

Meteor: change a user password WITHOUT logout?

本文关键字:用户 密码 情况下 注销 流星      更新时间:2023-09-26

Accounts.setPassword(userId, password);

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

从 v1.0.2 开始,我引用了 https://github.com/meteor/meteor/blob/devel/History.md 的话,"当用户的密码重置和登录令牌在密码更改时

,在任何情况下都要过期"。

我不知道此更改的原因,但事实是上面的功能注销用户。

有没有办法在v1.0.2中更改用户密码而无需注销用户?

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

谢谢。

Accounts.setPassword(userId, password, options)

此方法现在支持options参数,该参数包含可用于防止当前用户注销options.logout选项。

您可以使用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

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

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

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