【问题标题】:Passport's serializeUser doesn't respondPassport 的 serializeUser 没有响应
【发布时间】:2015-01-16 09:28:56
【问题描述】:

我不太明白如何在 express/SQL 中使用 Passport 的 serializeUser 函数。

这是我的问题:

  1. passport.serializeUser 如何知道“用户”是什么?我应该在哪里指定?
  2. 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);
});

我什么都没看到。怎么了?

【问题讨论】:

    标签: node.js express passport.js passport-twitter


    【解决方案1】:

    回答你的两个问题:

    1. 您必须在身份验证代码中定义什么是“用户”。

      应该是这样的:

      passport.use(new TwitterStrategy({
          consumerKey:*******,
          consumerSecret:******,
          callbackURL:'/auth/twitter/callback'
      },
      function(token, tokenSecret, profile,done){
        var user = db.call(retrieve a user) ; //whatever you want it to be
        done(null,user);
       });
      
    2. 身份验证路由一开始是通过某个请求对象访问的,代码如下:

      done(null,user);
      

      知道你的 req 对象。据我了解,是这样的。

    这方面的一个很好的来源是:http://toon.io/understanding-passportjs-authentication-flow/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-15
      • 2016-07-31
      • 2021-02-05
      • 1970-01-01
      • 2020-10-22
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多