我是expressjs和passportjs的初学者。
我使用护照和 GoogleStrategy 通过谷歌进行身份验证。使用下面的代码我有req.user = { id: '123456' }
in /用户/你好路由处理程序,但我想得到一些类似的没有会话支持的东西,将其作为答案发送给经过身份验证的客户端。换句话说,如果身份验证成功而无需 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'
}));
要关闭会话,请尝试更改此设置:
app.get('/auth/google/return',
passport.authenticate('google', {
successRedirect: '/users/hello',
failureRedirect: '/users/goodbye'
}));
to:
app.get('/auth/google/return',
passport.authenticate('google', {
session:false
}));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)