2014-11-06 75 views
1

我正在使用護照js在我的node.js應用程序中對用戶進行身份驗證。在vkontakte的情況下,我獲得了僅一天有效的訪問令牌?這裏是我的代碼如何從vkontakte獲取長期存取令牌?

passport.use(new VKontakteStrategy({clientID: '******',clientSecret: '********',callbackURL: "http://example.com/signin/vkontakte/callback",profileFields:  ['notify','friends','photos','notes','pages','offers','questions','wall','messages','offline']}, 
function (accessToken, refreshToken, profile, done) { 
    process.nextTick(function() { 
     console.log('vk profile: '+util.inspect(profile)); 
     console.log('refresh Token: '+refreshToken); 
     profile.accessToken = accessToken.toString(); 
     return done(null, profile); 
    }); 
} 

)); ` 有沒有辦法增加有效期?幫助讚賞。提前致謝。

回答

6

在您的令牌請求中設置範圍=離線

+0

但我在發送請求(請檢查vkontakte stretegy參數)。所以你可以建議設置這個範圍的正確方法 – 2014-11-26 09:08:48

+0

當你發送'scope = offline'時,你請求長時間生存的訪問令牌。 VK oauth響應中的字段'expires_in = 0'表示長請求的訪問令牌被請求,但不會過期。沒有其他方法可以自行增加有效期,因爲它由VK定義。 – FrAn 2015-01-18 08:27:39