gpt4 book ai didi

express - 无 session 的 Passport js 身份验证

转载 作者:行者123 更新时间:2023-12-02 12:46:33 25 4
gpt4 key购买 nike

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

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'
}));

最佳答案

要关闭 session ,请尝试更改此设置:

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

至:

app.get('/auth/google/return',
passport.authenticate('google', {
session:false
}));

关于express - 无 session 的 Passport js 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25514029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com