123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 'use strict';
- // Helper functions for accessing the vkontakte API.
- const httpsRequest = require('./httpsRequest');
- var Parse = require('parse/node').Parse;
- // Returns a promise that fulfills iff this user id is valid.
- function validateAuthData(authData, params) {
- return vkOAuth2Request(params).then(function (response) {
- if (response && response.access_token) {
- return request('api.vk.com', 'method/users.get?access_token=' + authData.access_token + '&v=' + params.apiVersion).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.');
- });
- }
- throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Vk appIds or appSecret is incorrect.');
- });
- }
- function vkOAuth2Request(params) {
- return new Promise(function (resolve) {
- if (!params || !params.appIds || !params.appIds.length || !params.appSecret || !params.appSecret.length) {
- throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'Vk auth is not configured. Missing appIds or appSecret.');
- }
- if (!params.apiVersion) {
- params.apiVersion = '5.124';
- }
- resolve();
- }).then(function () {
- return request('oauth.vk.com', 'access_token?client_id=' + params.appIds + '&client_secret=' + params.appSecret + '&v=' + params.apiVersion + '&grant_type=client_credentials');
- });
- }
- // Returns a promise that fulfills iff this app id is valid.
- function validateAppId() {
- return Promise.resolve();
- }
- // A promisey wrapper for api requests
- function request(host, path) {
- return httpsRequest.get('https://' + host + '/' + path);
- }
- module.exports = {
- validateAppId: validateAppId,
- validateAuthData: validateAuthData
- };
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJodHRwc1JlcXVlc3QiLCJyZXF1aXJlIiwiUGFyc2UiLCJ2YWxpZGF0ZUF1dGhEYXRhIiwiYXV0aERhdGEiLCJwYXJhbXMiLCJ2a09BdXRoMlJlcXVlc3QiLCJ0aGVuIiwicmVzcG9uc2UiLCJhY2Nlc3NfdG9rZW4iLCJyZXF1ZXN0IiwiYXBpVmVyc2lvbiIsImxlbmd0aCIsImlkIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwiUHJvbWlzZSIsInJlc29sdmUiLCJhcHBJZHMiLCJhcHBTZWNyZXQiLCJ2YWxpZGF0ZUFwcElkIiwiaG9zdCIsInBhdGgiLCJnZXQiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0FkYXB0ZXJzL0F1dGgvdmtvbnRha3RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuLy8gSGVscGVyIGZ1bmN0aW9ucyBmb3IgYWNjZXNzaW5nIHRoZSB2a29udGFrdGUgQVBJLlxuXG5jb25zdCBodHRwc1JlcXVlc3QgPSByZXF1aXJlKCcuL2h0dHBzUmVxdWVzdCcpO1xudmFyIFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlO1xuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGZ1bGZpbGxzIGlmZiB0aGlzIHVzZXIgaWQgaXMgdmFsaWQuXG5mdW5jdGlvbiB2YWxpZGF0ZUF1dGhEYXRhKGF1dGhEYXRhLCBwYXJhbXMpIHtcbiAgcmV0dXJuIHZrT0F1dGgyUmVxdWVzdChwYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmFjY2Vzc190b2tlbikge1xuICAgICAgcmV0dXJuIHJlcXVlc3QoXG4gICAgICAgICdhcGkudmsuY29tJyxcbiAgICAgICAgJ21ldGhvZC91c2Vycy5nZXQ/YWNjZXNzX3Rva2VuPScgKyBhdXRoRGF0YS5hY2Nlc3NfdG9rZW4gKyAnJnY9JyArIHBhcmFtcy5hcGlWZXJzaW9uXG4gICAgICApLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXNwb25zZSAmJlxuICAgICAgICAgIHJlc3BvbnNlLnJlc3BvbnNlICYmXG4gICAgICAgICAgcmVzcG9uc2UucmVzcG9uc2UubGVuZ3RoICYmXG4gICAgICAgICAgcmVzcG9uc2UucmVzcG9uc2VbMF0uaWQgPT0gYXV0aERhdGEuaWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnVmsgYXV0aCBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuJyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdWayBhcHBJZHMgb3IgYXBwU2VjcmV0IGlzIGluY29ycmVjdC4nKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHZrT0F1dGgyUmVxdWVzdChwYXJhbXMpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgaWYgKFxuICAgICAgIXBhcmFtcyB8fFxuICAgICAgIXBhcmFtcy5hcHBJZHMgfHxcbiAgICAgICFwYXJhbXMuYXBwSWRzLmxlbmd0aCB8fFxuICAgICAgIXBhcmFtcy5hcHBTZWNyZXQgfHxcbiAgICAgICFwYXJhbXMuYXBwU2VjcmV0Lmxlbmd0aFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELFxuICAgICAgICAnVmsgYXV0aCBpcyBub3QgY29uZmlndXJlZC4gTWlzc2luZyBhcHBJZHMgb3IgYXBwU2VjcmV0LidcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghcGFyYW1zLmFwaVZlcnNpb24pIHtcbiAgICAgIHBhcmFtcy5hcGlWZXJzaW9uID0gJzUuMTI0JztcbiAgICB9XG4gICAgcmVzb2x2ZSgpO1xuICB9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gcmVxdWVzdChcbiAgICAgICdvYXV0aC52ay5jb20nLFxuICAgICAgJ2FjY2Vzc190b2tlbj9jbGllbnRfaWQ9JyArXG4gICAgICAgIHBhcmFtcy5hcHBJZHMgK1xuICAgICAgICAnJmNsaWVudF9zZWNyZXQ9JyArXG4gICAgICAgIHBhcmFtcy5hcHBTZWNyZXQgK1xuICAgICAgICAnJnY9JyArXG4gICAgICAgIHBhcmFtcy5hcGlWZXJzaW9uICtcbiAgICAgICAgJyZncmFudF90eXBlPWNsaWVudF9jcmVkZW50aWFscydcbiAgICApO1xuICB9KTtcbn1cblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZmYgdGhpcyBhcHAgaWQgaXMgdmFsaWQuXG5mdW5jdGlvbiB2YWxpZGF0ZUFwcElkKCkge1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG59XG5cbi8vIEEgcHJvbWlzZXkgd3JhcHBlciBmb3IgYXBpIHJlcXVlc3RzXG5mdW5jdGlvbiByZXF1ZXN0KGhvc3QsIHBhdGgpIHtcbiAgcmV0dXJuIGh0dHBzUmVxdWVzdC5nZXQoJ2h0dHBzOi8vJyArIGhvc3QgKyAnLycgKyBwYXRoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHZhbGlkYXRlQXBwSWQ6IHZhbGlkYXRlQXBwSWQsXG4gIHZhbGlkYXRlQXV0aERhdGE6IHZhbGlkYXRlQXV0aERhdGEsXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUVaO0FBRUEsTUFBTUEsWUFBWSxHQUFHQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7QUFDOUMsSUFBSUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUNDLEtBQUs7O0FBRXZDO0FBQ0EsU0FBU0MsZ0JBQWdCQSxDQUFDQyxRQUFRLEVBQUVDLE1BQU0sRUFBRTtFQUMxQyxPQUFPQyxlQUFlLENBQUNELE1B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
|