#javascript #express #fetch #passport.js #insomnia
Вопрос:
Когда я выполняю выборку в API, ранее созданный с помощью Express и Passport, я получаю ошибку, подобную той, что на картинке: введите описание изображения здесь
Но когда я делаю пост-запрос с использованием Бессонницы, я получаю успешный ответ. введите описание изображения здесь
Это задействованный код . введите описание изображения здесь
/*passport.js*/
const db = require("../../database");
const helpers = require("./helpers");
const passport = require("passport");
const LocalStrategy = require("passport-local").Strategy;
//SERIALIZING USER
passport.serializeUser((user, done) => {
done(null, user.id);
});
//DESERIALIZING USER
passport.deserializeUser(async(id, done) => {
const rows = await db.query(
"SELECT id, nombre, apellidos, tipo_usuario FROM usuarios WHERE id = ? ", [id]
);
done(null, rows[0]);
});
//LOGIN SYSTEM
passport.use(
"login",
new LocalStrategy({
usernameField: "email",
passwordField: "password",
passReqToCallback: false,
},
async(email, password, done) => {
const rows = await db.query(
"SELECT id, password FROM usuarios WHERE email = ?", [email]
);
console.log(rows);
if (rows.length > 0) {
const user = rows[0];
const validate = await helpers.matchPassword(password, user.password);
console.log(validate);
if (validate) {
done(null, user);
} else {
done(null, false, {
message: "Incorrect Password"
});
}
} else {
done(null, false, {
message: "User not found"
});
}
}
)
);
//SIGNUP SYSTEM
passport.use(
"signup",
new LocalStrategy({
usernameField: "email",
passwordField: "password",
passReqToCallback: true,
},
async(req, email, password, done) => {
const {
nombre,
apellidos
} = req.body;
const newUser = {
nombre,
apellidos,
email,
password
};
newUser.password = await helpers.encryptPassword(password);
const result = await db.query("INSERT INTO usuarios SET ?", [newUser]);
newUser.id = result.insertId;
done(null, newUser, {
message: "Signup Successful"
});
}
)
);
/*auth.js*/
const { Router } = require("express");
const { isLoggedIn } = require("../middlewares/helpers");
const passport = require("passport");
//INITIALIZATION
const router = Router();
//ESTA ES LA PESTAÑA DE LOGIN
router.get("/login", (req, res) => {
res.send("Login page");
});
//ESTA RUTA RECIBE LOS DATOS DEL FORMULARIO Y LOS COMPARA CON LOS DE LA BD
router.post("/login", async (req, res, next) => {
passport.authenticate("login", {
successRedirect: "/dashboard/profile",
failureRedirect: "/auth/login",
failureFlash: false,
})(req, res, next);
});
//ESTA ES LA PESTAÑA DE SIGNUP
router.get("/signup", (req, res) => {
res.send("Signup Page");
});
//RECIBE LOS DATOS DEL FORMULARIO REGISTRO USUARIO Y LOS AGREGA A LA BD
router.post(
"/signup",
passport.authenticate("signup", {
successRedirect: "/dashboard/profile",
failureRedirect: "/auth/signup",
failureFlash: false,
})
);
//LOGOUT
router.get("/logout", (req, res) => {
req.logOut();
res.redirect("/auth/login");
});
//EXPORTING AUTH ROUTES
module.exports = router;
Комментарии:
1. Возможно, ваш запрос на извлечение неверен