我不太清楚如何在 express/SQL 中使用 Passport 的 serializeUser 函数。
以下是我的问题:
- passport.serializeUser 如何知道“用户”是什么?我应该在哪里指定它?
- passport.serializeUser 如何知道哪个请求对象应该与 cookie 绑定?
我的应用配置如下所示:
var passport = require('passport');
app.use(session({ secret: 'Secret',
saveUninitialized: true,
resave: true}));
app.use(passport.initialize());
app.use(passport.session());
我还在 twitter_auth.js 中向应用程序公开了以下代码:
// twitter authentication and login
app.get('/auth/twitter', passport.authenticate('twitter'));
// handle callback after twitter has authenticated user
app.get('/auth/twitter/callback',passport.authenticate('twitter',{
successRedirect: '/',
failureRedirect: '/'
}));
// used to serialize user
passport.serializeUser(function(user,done){
done(null,user);
});
// used to deserialize the user
passport.deserializeUser(function(User_ID,done){
connection.query('SELECT * from UsersTable where User_ID = '+User_ID, function(err,rows){
done(err,rows[0]);
});
});
当我尝试发现它时:
// used to serialize user
passport.serializeUser(function(user,done){
console.log('spotted here!');
done(null,user);
});
我从来没有看到任何东西。怎么了?