私はログインのロジックを書いており、ユーザーは電子メールまたは(携帯)電話番号でログインすることができます。それはうまくいっていますが、ユーザーがログインしている間に別のフィールドを確認する必要があります。ユーザーがアクティブ(1)かパスポート(node.js)を使用していないかどうかを確認するにはどうすればよいですか?
ユーザーの電子メール/電話番号が既に存在する場合は、ユーザーがアクティブ値 '0'か '
アクティブ:0は、その.IF 『1' 続いでき、ユーザはプロセスに
アクティブ手段を継続するために『1』のユーザーは、私はあなたがその.ITまだ検証されていないERRメッセージを送信する必要があり、その時点検証されていない』と。 1
どうすればいいですか?
私のユーザー・スキーマ:
var UserSchema = new Schema({
name: String,
email: { type: String, lowercase: true },
mobilenumber: {
type: String,
trim: true,
},
Active: {
type: String,
trim: true,
default: '0',
},
});
パスポート:
exports.setup = function (User, config) {
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password' // this is the virtual field on the model
},
function(email, password, done) {
var criteria = (email.indexOf('@') === -1) ? {
mobilenumber: email
} : {
email: email
};
User.findOne(criteria, function(err, user) {
if (err) return done(err);
if (!user) {
return done(null, false, { message: 'This email or mobilenumber is not registered.' });
}
if (!user.authenticate(password)) {
return done(null, false, { message: 'This password is not correct.' });
}
return done(null, user);
});
}
));
};
マイコントローラ:
exports.show = function (req, res, next) {
var userId = req.params.id;
User.findById(userId, function (err, user) {
if (err) return next(err);
if (!user) return res.status(401).send('Unauthorized');
res.json(user.profile);
});
};
ここで、私は自分のコードを変更する必要がありますpaaportまたはコントローラの機能@Viral –
ユーザーexsistかどうかは既に行われていますが、そのユーザーのアクティブ値が0か1かどうかを確認する必要があります –