Passport.js を使用して認証を行っています。Google の OAuth2 ドキュメント に従って、状態変数を渡しています。
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") も機能しません。
認証コールバック後にその変数を取得するにはどうすればよいですか?