可以实现这一目标有两种方式:如果User
模型不使用username
场
- ,你可以用它来存储手机号码,
mobileNo
。
- 您必须编辑
user.js
才能接受mobileNo
字段作为登录凭据。 User.login
和User.normalizeCredentials
用于登录过程,因此您可以像编码片段中提供的那样编辑它们。
注意:不要忘记添加mobileNo
到user.json
User.normalizeCredentials方法
`User.normalizeCredentials = function(credentials, realmRequired, realmDelimiter) {
var query = {};
credentials = credentials || {};
if (!realmRequired) {
if (credentials.email) {
query.email = credentials.email;
} else if (credentials.mobileNo) {
query.mobileNo = credentials.mobileNo;
}
} else {
if (credentials.realm) {
query.realm = credentials.realm;
}
var parts;
if (credentials.email) {
parts = splitPrincipal(credentials.email, realmDelimiter);
query.email = parts[1];
if (parts[0]) {
query.realm = parts[0];
}
} else if (credentials.mobileNo) { //added mobileNo.
parts = splitPrincipal(credentials.mobileNo, realmDelimiter);
query.mobileNo = parts[1];
if (parts[0]) {
query.realm = parts[0];
}
}
}
return query;
};`
User.login方法
`User.login = function(credentials, include, fn) {
.
.
.
.
.
if (!query.email && !query.mobileNo) {
var err2 = new Error('Mobile number or email is required');
err2.statusCode = 400;
err2.code = 'MOBILE_NUMBER_EMAIL_REQUIRED';
fn(err2);
return fn.promise;
}
}`
谢谢!有效。 – Shubh
还有一个问题,我如何跳过注册电子邮件(user.Create)? – Shubh
从'user.json'中为'email'字段删除'required:true'。 –