Упрощенный код выглядит следующим образом:
await this.$store.dispatch('auth/login', {
email: this.form.email,
password: this.form.password
});
, который вызывает это:
import axios from 'axios';
export const login = async function({ commit }, { email, password }) {
if (!email || !password) throw new Error('Email and password are required');
try {
const { data } = await axios.post('/api/auth/login', { email, password });
// commit(mutations.SET_USER, data);
} catch (error) {
console.log(error);
}
, а запрос axios обрабатывается так:
import passport from 'passport';
router.post('/login', passport.authenticate('local'), (req, res) => {
// res.json(req.user);
res.status(200).json({ message: 'user' });
});
auth_config.js имеет следующее:
const LocalStrategy = require('passport-local').Strategy;
const User = require('./api/models').User;
module.exports = passport => {
passport.use(
new LocalStrategy({ usernameField: 'email' }, (email, password, done) => {
console.log('1');
User.findOne(
{
where: {
email: email
}
},
(err, user) => {
console.log('user.comparePassword ...');
done(null, user);
}
);
console.log('2');
})
);
};
(Обратите внимание, что добавление параметра req
перед именем пользователя или выполнение return done(...
, как описано в readme-local Passme , также не работает.)
Серверный index.js имеет следующие важные части:
const session = require('express-session');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const passport = require('passport');
app.use(bodyParser.json());
app.use(cookieParser());
app.use(
session({
secret: ',djkwnks&jnfk/gmKZNFuif3%',
resave: false,
saveUninitialized: false,
cookie: { maxAge: 60000 }
})
);
app.use(passport.initialize());
app.use(passport.session());
//const sequelize = require('sequelize');
//sequelize.Promise = global.Promise;
require('./auth_config')(passport);
Вывод:
1
2
Выполнение(по умолчанию): SELECT ...
Таким образом, выполняется оператор SQL для выбора пользователя.
Теперь моя проблема в том, что он не завершает загрузку (await axios.post не завершает работу), и через некоторое время я получаю сообщение «Ошибка: ошибка сети».
Регистрация пользователяработает.
Я уже попробовал несколько вещей из руководств и readmes.Это может быть проблема с какой-то асинхронной функциональностью?Может быть, что-то, что связано с sequelize.Promise?Это проблема с passport-local?Может быть, я просто пропускаю что-то тривиальное здесь?Любая помощь высоко ценится.