Настроил аутентификацию через Вконтакте, используя passport-vkontakte. Аутентификация работает, но довольно часто возникает ошибка.. я заметил следующие виды ошибок:
InternalOAuthError: failed to fetch user profile
at /home/www/workspace/node_modules/passport-vkontakte/lib/passport-vkontakte/strategy.js:144:28
at ClientRequest.<anonymous> (/home/www/workspace/node_modules/passport-vkontakte/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:148:5)
at ClientRequest.emit (events.js:107:17)
at TLSSocket.socketErrorListener (_http_client.js:272:9)
at TLSSocket.emit (events.js:129:20)
at net.js:451:14
at process._tickCallback (node.js:355:11)
InternalOAuthError: Failed to obtain access token
at Strategy.OAuth2Strategy._createOAuthError (/home/www/workspace/node_modules/passport-vkontakte/node_modules/passport-oauth2/lib/strategy.js:349:17)
at /home/www/workspace/node_modules/passport-vkontakte/node_modules/passport-oauth2/lib/strategy.js:171:43
at /home/www/workspace/node_modules/passport-vkontakte/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:177:18
at ClientRequest.<anonymous> (/home/www/workspace/node_modules/passport-vkontakte/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:148:5)
at ClientRequest.emit (events.js:107:17)
at TLSSocket.socketErrorListener (_http_client.js:272:9)
at TLSSocket.emit (events.js:129:20)
at net.js:451:14
at process._tickCallback (node.js:355:11)
по коду ничего особенного
VKontakteStrategy = require('passport-vkontakte').Strategy
...
passport.use(new VKontakteStrategy({
clientID: VKONTAKTE_APP_ID, // VK.com docs call it 'API ID'
clientSecret: VKONTAKTE_APP_SECRET,
callbackURL: "https://local/workspace/auth/vkontakte/callback/"
},
function(accessToken, refreshToken, profile, done) {
console.log(profile);
});
});
app.get('/auth/vkontakte', passport.authenticate('vkontakte', {
successRedirect: '/workspace/',
failureRedirect: '/error'
//scope: ['email']
}));
app.get('/auth/vkontakte/callback/',
passport.authenticate('vkontakte', {
failureRedirect: '/workspace/auth/vkontakte'
//scope: ['email']
}),
function(req, res) {
console.log("[OAuth2:redirect:query]:", JSON.stringify(req.query));
console.log("[OAuth2:redirect:body]:", JSON.stringify(req.body))
// Successful authentication, redirect home.
res.redirect('workspace/');
});
Параллельно используется аутентификация через Facebook - работает без сбоев. Конструкции FB и VK полностью идентичные.
Ошибка возникает хаотично.. отследить зависимости не смог.. То работает - то нет..
Собственно из-за чего аутентификацию вконтакте может корячить?