diff --git a/CHANGELOG.md b/CHANGELOG.md index f13ae6e1..967df0b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ### master [Full Changelog](https://github.com/parse-community/parse-server/compare/3.0.0...master) +#### Bug fixes: +* Fixes issue with vkontatke authentication ### 3.0.0 diff --git a/spec/AuthenticationAdapters.spec.js b/spec/AuthenticationAdapters.spec.js index 48230777..b63a5136 100644 --- a/spec/AuthenticationAdapters.spec.js +++ b/spec/AuthenticationAdapters.spec.js @@ -7,7 +7,7 @@ const responses = { instagram: { data: { id: 'userId' } }, janrainengage: { stat: 'ok', profile: { identifier: 'userId' }}, janraincapture: { stat: 'ok', result: 'userId' }, - vkontakte: { response: { user_id: 'userId'}}, + vkontakte: { response: [{ id: 'userId'}]}, google: { sub: 'userId' }, wechat: { errcode: 0 }, weibo: { uid: 'userId' }, diff --git a/src/Adapters/Auth/vkontakte.js b/src/Adapters/Auth/vkontakte.js index e687573e..afaa1ee4 100644 --- a/src/Adapters/Auth/vkontakte.js +++ b/src/Adapters/Auth/vkontakte.js @@ -10,8 +10,8 @@ var logger = require('../../logger').default; function validateAuthData(authData, params) { return vkOAuth2Request(params).then(function (response) { if (response && response.access_token) { - return request("api.vk.com", "method/secure.checkToken?token=" + authData.access_token + "&client_secret=" + params.appSecret + "&access_token=" + response.access_token + "&v=5.59").then(function (response) { - if (response && response.response && response.response.user_id == authData.id) { + return request("api.vk.com", "method/users.get?access_token=" + authData.access_token + "&v=5.8").then(function (response) { + if (response && response.response && response.response.length && response.response[0].id == authData.id) { return; } throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Vk auth is invalid for this user.');