我正在尝试使用node.js的passport模块返回一个refreshToken。但是,我使用的是下面的代码,我无法记录任何刷新令牌,但访问令牌工作正常。有没有办法为这个模块指定离线访问类型,以便有希望地返回它?
var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
passport.use(new GoogleStrategy({
clientID: GOOGLE_CLIENT_ID,
clientSecret: GOOGLE_CLIENT_SECRET,
callbackURL: "http://myurl/auth/callback"
},
function(accessToken, refreshToken, profile, done) {
console.log(refreshToken);
process.nextTick(function () {
return done(null, [{token:accessToken}, {rToken:refreshToken}, {profile:profile}]);
});
}
));
这将返回未定义的refreshToken。
任何帮助都将不胜感激。
发布于 2014-03-14 03:34:34
这是通过以下链接解决的:
https://github.com/jaredhanson/passport/issues/42
具体地说:
passport.authenticate('google', { scope: ['https://www.googleapis.com/auth/userinfo.profile',
'https://www.googleapis.com/auth/userinfo.email'],
accessType: 'offline', approvalPrompt: 'force' });
贾里德·汉森--保佑你。
https://stackoverflow.com/questions/21942290
复制相似问题