我有一个输入可以是用户名或电子邮件。我似乎无法使此mysql查询起作用以自动检测它是用户名还是电子邮件,然后返回ID和apikey:
var sql = 'SELECT id, apikey from admin WHERE (username = ? OR email = ?) AND password = ?';
var sqlParams = [emailorusername, emailorusername, password];
mysql.query(sql, sqlParams, function(err,result){
if (err) {
console.log(err);
callback(err);
} else{
console.log('OK');
if(result.length > 0){
callback(null,result);
}
}
任何帮助表示赞赏。
我建议使用另一种策略。首先,不要像在数据库中那样存储密码。存储哈希值。然后搜索所需的user_id和password_hash,如下所示:select id,apikey,password_hash其中user_name =?或电子邮件=?。之后,将哈希与提供的密码中的哈希进行比较
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句