如何使用用户名但不同的选择器登录?

时间:2015-11-04 11:43:02

标签: authentication meteor

我想实现"使用用户名或customerID登录(从不同时登录)和密码"我让用户在第一个字段中输入用户名或者他们的customerID,在第二个字段中输入密码。

accounts-password包允许我通过调用

使用用户名登录
Meteor.loginWithPassword(<username>,<password>);

                       OR

var selector = {username: <username>}
Meteor.loginWithPassword(selector, <password>);

我尝试使用选择器选择用户。

var selector = {customerID: <customerID>}

但似乎我只能以这种方式使用_idusernameemail来选择用户,否则会收到Match failed错误。

在没有username_idemail的情况下,是否还有其他方法可以记录用户?

1 个答案:

答案 0 :(得分:0)

这种解决方法是我达到的最远:

1。首先使用username检索_idcustomerID

2。然后使用检索到的username / _id和密码登录。

//SERVER
Meteor.methods({
    findIDFromCustomerID: function(customerID){
        user = Meteor.users.findOne({customerID: customerID});
        if(user){
            return user._id;
        }else{
            throw new Meteor.Error(403,"User not found");
        }
    }
});

//CLIENT
Meteor.call('findIDFromCustomerID',<customerID>,function(err,data){
    if(data && !err){
        Meteor.loginWithPassword({id: data}, <password>);
    }
});

但在此,我觉得我为行为不端的用户留下了一个小窗口。