Я новичок в mongoDB и mongoose.Но я пытаюсь получить доступ к пользователям, которые я сохранил в своей базе данных, по их электронной почте. Если пользователь был успешно извлечен, я сравню пароль, который он написал, с хешированным паролем, хранящимся в базе данных
это то, что у меня есть для моей схемы
UserSchema
var UserSchema = new Schema({
firstName: { type: String, required: true }, //require makes it so that the fields can't be left blank
lastName: {type: String, required: true},
emailAddress: {type: String, required: true},
password: {type: String, required: true}
});
var User = mongoose.model("User", UserSchema);
Я использую пакет basic-auth в моем файле rout.js для тестированияэто API в почтальоне, это та часть, где я застрял, const user = User.find ({'emailAddress': credentials.name, user.emailAddress}); ЯВозникли проблемы при составлении запроса для доступа к электронной почте пользователя из базы данных
//This middle-where function will authenticate users
const authenticateUser = (req, res, next) => {
let message = null;
// Parse the user's credentials from the Authorization header.
const credentials = auth(req);
// If the user's credentials are available...
if (credentials) {
// Attempt to retrieve the user from the data store
// by their email (i.e. the user's "key"
// from the Authorization header).
const user = User.find({'emailAddress': credentials.name, user.emailAddress} );
// If a user was successfully retrieved from the data store...
if (user) {
// Use the bcryptjs npm package to compare the user's password
// (from the Authorization header) to the user's password
// that was retrieved from the data store.
const authenticated = bcryptjs
.compareSync(credentials.pass, user.password);
в этом экспресс-маршрутизаторе. Я верну пользователя только после аутентификации
//GET /api/users 200, THIS WORKS IN POSTMAN
//This Route returns the currently authenticated user,
router.get('/users', authenticateUser, (req, res) => {
//within the route handler, the current authenticated user's information is retrieved from the Request object's currentUser property:
const user = req.currentUser;
//we use the Response object's json() method to return the current user's information formatted as JSON:
res.json({
firstName: user.firstName,
lastName: user.lastName,
});
});
Может кто-нибудь помочь?Для справки это мой репо https://github.com/SpaceXar20/rest_api-mongo-p9