metrojs persistent设置UserId以切换用户

meteorjs persistent setUserId to switch user

本文关键字:用户 UserId persistent 设置 metrojs      更新时间:2023-09-26

我正在尝试使用meteothis.setUserId()服务器端和meteor.connection.setUserId(()客户端。这是为了让管理员控制所有用户的帐户,并能够在没有密码的情况下登录。

服务器端:

Meteor.methods( {
    "switchUser": function(user_id) {
        this.setUserId(user_id);
        return user_id;
    }
});

客户端:

Meteor.call("switchUser",  user_id , function(error, idUser) {
    Meteor.connection.setUserId(idUser);
    Router.go('/profile');
});

它是有效的,但不是持久的。刷新或移动到另一个页面后,登录的用户将恢复到第一个(管理员)。

如何使用metrojs永久切换用户?

我不知道它是否有效,但如果你查看local storage,你会发现它设置了一个登录令牌Meteor.loginToken,用户id为Meteor.userId,也许你在切换时也必须为新用户设置它。或者你应该考虑制定一个无密码登录的方法https://github.com/meteor/meteor/blob/master/packages/accounts-base/accounts_server.js#L107