Passport本地策略不会返回用户

时间:2019-02-27 12:29:41

标签: node.js passport.js passport-local

我的注册和登录完全正常,直到我想将用户返回到前端为止。用户最终被不确定。

这是我的护照。

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中,该用户存在,应正确返回。它只是迷路了。更有趣的是,几个月前,我在其他应用程序中使用了完全相同的代码,并且正常工作。

编辑: 原来,它适用于邮递员,所以我不知道现在怎么回事

0 个答案:

没有答案