Я пытаюсь получить данные от пользователя после того, как он войдет в систему, с моего внешнего интерфейса я отправляю имя пользователя и пароль, и он успешно отправляет данные на сервер, и паспорт успешно перенаправляет на указанный мной маршрут. У меня вопрос, как я могу получить эти пользовательские данные, например, имя пользователя, изображение профиля и т. Д., Чтобы я мог получить доступ к его данным на каждой странице и опустить кнопку входа в систему.
паспорт
const passport = require("passport");
const LocalStrategy = require("passport-local").Strategy;
const UserSchema = require("../model/schemas/user.schema");
const config = require("../config/database.js");
const bcrypt = require("bcrypt");
module.exports = (password) => {
// Local strategy
passport.use(new LocalStrategy((username, password, done) => {
let query = {username: username};
UserSchema.findOne(query, (err, user) => {
if(err) throw err;
if(!user){
return done(null, false, {message: "Nome de utilizador errado!"})
}
// Compare password
bcrypt.compare(password, user.password, (err, isMatch) => {
if(err) throw err;
if(isMatch) {
return done(null, user);
} else {
return done(null, false, {message: "Password incorreta!"});
}
})
})
}));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
UserSchema.findById(id, function(err, user) {
done(err, user);
});
});
}
нужная мне часть пользовательского контроллера,
static loginUser(req, res, next){
console.log(req.body)
passport.authenticate("local", {
successRedirect: "/",
failureRedirect: "/forum",
failureFlash: true
})(req, res, next);
}
Маршрут
const express = require("express");
const router = express.Router();
const UserController = require("../controller/user.controller");
router.get('/', UserController.returnUsers);
router.post('/register', UserController.registerUser);
router.post("/login", UserController.loginUser);
module.exports = router;
на Vue
login() {
axios.post("http://localhost:3000/login", {
username: this.form.username,
password: this.form.password
});
},
app.js
require("./config/passport")(passport);
// Passport middleware
app.use(passport.initialize());
app.use(passport.session());
app.get("*", (req, res, next) => {
res.locals.user = req.user || null;
next();
})