Паспорт локальной стратегии не возвращает пользователя - PullRequest
0 голосов
/ 27 февраля 2019

Моя регистрация и вход в систему работают нормально, пока я не хочу вернуть пользователя в интерфейс.В итоге пользователь не определен.

Вот мой passport.js

const passport = require('passport');
const localStrategy = require('passport-local').Strategy;
const mongoose = require('mongoose');

const User = mongoose.model('users');

passport.serializeUser((user, done) => {
    done(null, user._id)
})


passport.deserializeUser((id, done) =>
    User.findById(id).then((user) => {
        if (user) {
            done(null, user)
        } else {
        }
    })
);

passport.use(new localStrategy((username, password, done) => {
    User.findOne({ username: username }, (err, user) => {
        console.log(user)
        if (err) { return done(err); }

        if (!user) {
            return done(null, false, { message: 'Username not found' });
        }

        if (!user.comparePassword(password, user.password)) {
            return done(null, false, { message: 'Incorrect password.' });
        }

        return done(null, user);
    });
}));

Вот мой маршрут входа:

const passport = require('passport');

const mongoose = require('mongoose');

const User = mongoose.model('users');

module.exports = (app) => {
    app.get('/test', (req, res) => {
        res.send('elo')
    })

    app.post('/login',
        passport.authenticate('local', {
            successRedirect: '/loginSuccess',
            failureRedirect: '/loginFailed',
        })
    );

    app.get('/loginSuccess', (req, res) => {
        console.log(req.user)
        res.send({ success: true, test:'test', user: req.user })
    })
    app.get('/loginFailed', (req, res) => {
        res.send({ success: false, error: "Incorrect credentials" })
    })
};

В passport.js пользователь существует идолжен быть возвращен правильно.Это просто теряется где-то по пути.Что смешнее, я использовал точно такой же код в другом приложении несколько месяцев назад, и он работал правильно.

Редактировать: Оказывается, он работает на почтальоне, поэтому я не знаю, что происходит сейчас

...