Bạn có thể cần sử dụng whereRaw ()
knex('usr_info')
.whereRaw('login = ? AND password = PASSWORD(?)', [login, password]);
Nhân tiện, bạn không nên sử dụng hàm PASSWORD () của MySQL để xác thực ứng dụng của riêng bạn. Chức năng này đã bị loại bỏ trong MySQL 8.0.11. Trong MySQL 5.7, nó không được dùng nữa và có một lưu ý:
https://dev.mysql.com/doc /refman/5.7/en/encryption-functions.html# Chức năng_password
Ngoài ra, bạn không nên chuyển mật khẩu bản rõ vào truy vấn của mình, vì nó có thể được ghi bằng bản rõ trong nhật ký truy vấn.
Thay vào đó, tôi khuyên bạn chỉ nên tìm kiếm login
trong truy vấn của bạn, sau đó kết quả sẽ bao gồm mật khẩu băm được lưu trữ trong cơ sở dữ liệu của bạn. Bạn có thể băm mật khẩu trong mã ứng dụng của mình và so sánh nó với mật khẩu được trả về bởi truy vấn của bạn.