После ответа, найденного здесь https://stackoverflow.com/a/15362856 (мне пришлось добавить const
в мой файл из-за экспресс-промежуточных версий). Кажется, я не могу получить запрос на обработку. Я использую почтальон для имитации почтового вызова, когда я отправляю POST, ничего не отображается в журнале сервера, и запрос просто «держится». После того, как я отменить запрос, журнал сервер говорит, POST /login?username=foo&password=bar - - ms - -
PassportJS не заполняется запрос
Вот мой server.js
файл:
var express = require('express')
, http = require('http')
, path = require('path')
, passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
var app = express();
const flash = require('connect-flash');
const logger = require('morgan');
const cookieparser = require('cookie-parser');
const bodyparser = require('body-parser');
const session = require('express-session');
passport.use(new LocalStrategy(function(username, password, done) {
// insert your MongoDB check here. For now, just a simple hardcoded check.
if (username === 'foo' && password === 'bar')
{
done(null, { user: username });
}
else
{
done(null, false);
}
}));
passport.serializeUser(function(user, done) {
// please read the Passport documentation on how to implement this. We're now
// just serializing the entire 'user' object. It would be more sane to serialize
// just the unique user-id, so you can retrieve the user object from the database
// in .deserializeUser().
done(null, user);
});
passport.deserializeUser(function(user, done) {
// Again, read the documentation.
done(null, user);
});
app.use(logger('dev')); // log every request to the console
app.use(cookieparser); // read cookies (needed for auth)
app.use(bodyparser); // get information from html forms
app.use(session({ secret: 'nextoner' })); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash()); // use connect-flash for flash messages stored in session
// route to authenticate the user
app.post('/login', passport.authenticate('local', {
successRedirect: '/accessed',
failureRedirect: '/access'
}));
app.listen(3012);
// app.listen(3012);
Очевидно, я что-то не хватает, но после двух дней я не прибегая к помощи может показаться фигурой что это такое. Помощь будет принята с благодарностью.
Благодаря
Может быть, вы упускаете обработчики маршрута для '/ accessed' и'/access'? – Nindaff
У меня их нет, но когда я это сделал, все равно ничего не изменилось. На самом деле это не должно меняться, потому что Angular будет стрелять в меня по указанному URL без контроллера или представления, если обработчик маршрута не существует, подумал я. –