使用passport-local-mongoose
,我在用户记录中添加了一个标记active
,以表明该用户的电子邮件地址已经过验证。
根据文档,我在findByUsername
查询中添加了检查:
UserSchema.plugin(passportLocalMongoose, {
// Set usernameUnique to false to avoid a mongodb index on the username column!
usernameUnique: false,
findByUsername: function(model, queryParameters) {
// Add additional query parameter - AND condition - active: true
queryParameters.active = true;
return model.findOne(queryParameters);
}
});
之所以有效,是因为它拒绝了非活跃用户的登录信息。
但是,它没有告诉我为什么拒绝登录。当拒绝是由于未设置标志而导致的,我真正需要的是一个不同的错误,因为在这种情况下,我想显示一条消息以重新发送验证电子邮件。
鉴于我正在修改查询,因此我看不出PLM如何知道这种方法的区别。
那么,在哪里进行active
标志检查的正确位置,以便我可以生成其他消息?
我可以在authenticate
调用之外进行此操作,但是我感觉我可能会误读文档。
有什么建议吗?