我正在使用 Passport.js 进行身份验证,并且每个Google 的 OAuth2 文档 https://developers.google.com/accounts/docs/OAuth2Login#formingtheurl,我传递一个状态变量:
app.get('/authenticate/googleOAuth', function(request, response) {
passport.authenticate('google', {
scope:
[
'https://www.googleapis.com/auth/userinfo.profile',
'https://www.googleapis.com/auth/userinfo.email'
],
state: { blah: 'test' }
})(request, response);
});
但是,我以后似乎无法访问该变量:
passport.use(new googleStrategy(
{
clientID: '...',
clientSecret: '...',
callbackURL: '...',
passReqToCallback: true
},
function(request, accessToken, refreshToken, profile, done) {
console.log('state: ' + request.query.state);
login(profile, done);
}));
request.query.state 未定义。 request.param("state") 也不起作用。
在身份验证回调之后如何获取该变量?