Доброго времени суток.
Установлен модуль для авторизации passport-vkontakte. При первой! авторизации кидает на страницу:
site.net/auth/vk/callback?code=42aa39f9b2791ce327
При этом, если зайти на сайт, пользователь авторизован!
И выдает ошибку:
TokenError: Code is invalid or expired.
at Strategy.OAuth2Strategy.parseErrorResponse (/srv/13aaa/node_modules/passport-oauth2/lib/strategy.js:320:12)
at Strategy.parseErrorResponse (/srv/13aaaa/node_modules/passport-vkontakte/lib/passport-vkontakte/strategy.js:176:54)
at Strategy.OAuth2Strategy._createOAuthError (/srv/13aaaa/node_modules/passport-oauth2/lib/strategy.js:367:16)
at /srv/13aaaa/node_modules/passport-oauth2/lib/strategy.js:166:45
at /srv/13aaaa/node_modules/oauth/lib/oauth2.js:191:18
at passBackControl (/srv/13aaaa/node_modules/oauth/lib/oauth2.js:132:9)
at IncomingMessage.<anonymous> (/srv/13aaaa/node_modules/oauth/lib/oauth2.js:157:7)
at emitNone (events.js:91:20)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
Код обработчика:
passport.use(new VkStrategy(
{
clientID: config.get('vkID'),
clientSecret: config.get('vkSecret'),
callbackURL: config.get('vkCb') + '/auth/vk/callback'
},
function verify(accessToken, refreshToken, params, profile, done) {
process.nextTick(function () {
return done(null, {
userid: profile.id,
username: profile.displayName,
photoUrl: profile.photos[0].value,
profileUrl: profile.profileUrl
});
});
}
));
Роутеринги:
app.get('/auth/vk', passport.authenticate('vkontakte'), function(req, res){});
app.get('/auth/vk/undefined', passport.authenticate('vkontakte'), function(req, res){});
app.get('/auth/vk/callback', passport.authenticate('vkontakte', { failureRedirect: '/' }), function(req, res) {
res.redirect(req.headers.referer);
});
В чем может быть проблема?
И второй вопрос - иногда бывают моменты, что модуль перенаправляет на страницу /auth/vk/undefined, тоже не могу понять почему.
Спасибо!