我正在尝试使用
passportjs
使用以下代码。
所以当用户转到
http://localhost:3000
,他应自动重定向到
/hello
但实际上,它重定向到
/hello?failure
.
我尝试过调试,四处看看,但没有找到问题和解决方案。
const express = require('express');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const session = require('express-session');
let app = express();
app.use(session({
secret: 'mysecret',
cookie: {
secure: false
},
resave: true,
saveUninitialized: true
}
));
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
passport.use('local-login', new LocalStrategy(function (username, password, done) {
console.log(username + ' username ');
console.log(password + ' password ');
return done(null, { name: 'suhail' });
}));
passport.serializeUser(function (user, done) {
console.log(user, ' serialize ');
done(null, user.name);
});
passport.deserializeUser(function (id, done) {
console.log(id, ' deserialize ');
done(null, { name: 'suhail' });
});
app.get('/', passport.authenticate('local-login', { successRedirect: '/hello', failureRedirect: '/hello?failure' }));
app.get('/hello', (req, resp, next) => resp.send('hello').end());
app.listen(3000);
我错过了什么?应该转到
http://localhost:3000/hello
因为中间件总是解决问题。
注:
-未调用任何定义的中间件。它只是重定向到
/喂?失败
当GET请求
/
是制造的。