我想实现"使用用户名或customerID登录(从不同时登录)和密码"我让用户在第一个字段中输入用户名或者他们的customerID,在第二个字段中输入密码。
accounts-password
包允许我通过调用
Meteor.loginWithPassword(<username>,<password>);
OR
var selector = {username: <username>}
Meteor.loginWithPassword(selector, <password>);
我尝试使用选择器选择用户。
var selector = {customerID: <customerID>}
但似乎我只能以这种方式使用_id
,username
或email
来选择用户,否则会收到Match failed
错误。
在没有username
,_id
或email
的情况下,是否还有其他方法可以记录用户?
答案 0 :(得分:0)
这种解决方法是我达到的最远:
username
检索_id
或customerID
。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>);
}
});
但在此,我觉得我为行为不端的用户留下了一个小窗口。