没有会话的Passport js身份验证

时间:2014-08-26 19:46:35

标签: session passport.js

我是expressjs和passportjs的初学者。 我通过Google使用GoogleStrategy的护照进行身份验证。使用下面的代码我在/ users / hello路由处理程序中有req.user = {id:'123456'},但是我希望在没有会话支持的情况下得到一些这样的代码来将其作为经过身份验证的客户端的答案发送。换句话说,如果身份验证成功,我想向客户端发送一些令牌,而不启动cookie会话。当我关闭会话时,我找不到如何将用户对象转发到目标路由处理程序的方法。

passport.use(new GoogleStrategy({
    returnURL: 'http://localhost/auth/google/return',
    realm: 'http://localhost/'
  },
  function(identifier, profile, done) {
    done(null, {id: '123456'});
  }
));

passport.serializeUser(function(user, done) {
    done(null, user.id);
});

passport.deserializeUser(function(id, done) {
    done(null, {id: id});
});

app.use(session({ secret: 'keyboard cat' }));
app.use(passport.initialize());
app.use(passport.session());

app.get('/auth/google', passport.authenticate('google');
app.get('/auth/google/return',
    passport.authenticate('google', {
        successRedirect: '/users/hello',
        failureRedirect: '/users/goodbye' 
    }));

1 个答案:

答案 0 :(得分:1)

要关闭会话,请尝试更改此内容:

system

为:

app.get('/auth/google/return',
passport.authenticate('google', {
    successRedirect: '/users/hello',
    failureRedirect: '/users/goodbye' 
}));