From fc6ac8e2313252f5b8a1d7428a9299f95e2d13a9 Mon Sep 17 00:00:00 2001 From: Sulakin Vadim Date: Fri, 6 Dec 2019 01:38:06 +0300 Subject: [PATCH] add vk --- .../admin/src/components/PopUpForm/index.js | 2 ++ .../admin/src/translations/en.json | 1 + .../admin/src/translations/ru.json | 1 + .../config/functions/bootstrap.js | 9 +++++++++ .../services/Providers.js | 19 +++++++++++++++++++ 5 files changed, 32 insertions(+) diff --git a/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js b/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js index 6f69c3fe89..0ed9242674 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js +++ b/packages/strapi-plugin-users-permissions/admin/src/components/PopUpForm/index.js @@ -70,6 +70,8 @@ class PopUpForm extends React.Component { return `${strapi.backendURL}/connect/twitter/callback`; case 'instagram': return `${strapi.backendURL}/connect/instagram/callback`; + case 'vk': + return `${strapi.backendURL}/connect/vk/callback`; default: { const value = get(this.props.values, 'callback', ''); diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/en.json b/packages/strapi-plugin-users-permissions/admin/src/translations/en.json index 02430b7533..8b80cf3b9a 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/translations/en.json +++ b/packages/strapi-plugin-users-permissions/admin/src/translations/en.json @@ -85,6 +85,7 @@ "PopUpForm.Providers.github.providerConfig.redirectURL": "The redirect URL to add in your GitHub application configurations", "PopUpForm.Providers.google.providerConfig.redirectURL": "The redirect URL to add in your Google application configurations", "PopUpForm.Providers.instagram.providerConfig.redirectURL": "The redirect URL to add in your Instagram application configurations", + "PopUpForm.Providers.vk.providerConfig.redirectURL": "The redirect URL to add in your VK application configurations", "PopUpForm.Providers.key.label": "Client ID", "PopUpForm.Providers.key.placeholder": "TEXT", "PopUpForm.Providers.linkedin2.providerConfig.redirectURL": "The redirect URL to add in your Linkedin application configurations", diff --git a/packages/strapi-plugin-users-permissions/admin/src/translations/ru.json b/packages/strapi-plugin-users-permissions/admin/src/translations/ru.json index da20f905f7..3391cb2539 100644 --- a/packages/strapi-plugin-users-permissions/admin/src/translations/ru.json +++ b/packages/strapi-plugin-users-permissions/admin/src/translations/ru.json @@ -84,6 +84,7 @@ "PopUpForm.Providers.github.providerConfig.redirectURL": "URL-адрес перенаправления, который необходимо добавить в настройки GitHub приложения", "PopUpForm.Providers.google.providerConfig.redirectURL": "URL-адрес перенаправления, который необходимо добавить в настройки Google приложения", "PopUpForm.Providers.instagram.providerConfig.redirectURL": "URL-адрес перенаправления, который необходимо добавить в настройки Instagram приложения", + "PopUpForm.Providers.vk.providerConfig.redirectURL": "URL-адрес перенаправления, который необходимо добавить в настройки VK приложения", "PopUpForm.Providers.key.label": "Client ID", "PopUpForm.Providers.key.placeholder": "TEXT", "PopUpForm.Providers.linkedin2.providerConfig.redirectURL": "URL-адрес перенаправления, который необходимо добавить в настройки Linkedin приложения", diff --git a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js index 13e0d957c9..d905c1d667 100644 --- a/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js +++ b/packages/strapi-plugin-users-permissions/config/functions/bootstrap.js @@ -89,6 +89,15 @@ module.exports = async () => { secret: '', callback: '/auth/instagram/callback', }, + vk: { + enabled: false, + icon: 'vk', + key: '', + secret: '', + callback: '/auth/vk/callback', + scope: ['email'], + custom_params: { v: '5.103', display: 'page' }, + }, }; const prevGrantConfig = (await pluginStore.get({ key: 'grant' })) || {}; // store grant auth config to db diff --git a/packages/strapi-plugin-users-permissions/services/Providers.js b/packages/strapi-plugin-users-permissions/services/Providers.js index 0d0b821739..671e5e2d00 100644 --- a/packages/strapi-plugin-users-permissions/services/Providers.js +++ b/packages/strapi-plugin-users-permissions/services/Providers.js @@ -370,6 +370,25 @@ const getProfile = async (provider, query, callback) => { }); break; } + case 'vk': { + const vk = new Purest({ provider: 'vk' }); + + vk.query() + .get('users.get') + .auth(access_token) + .qs({ id: query.raw.user_id, v: '5.013' }) + .request((err, res, body) => { + if (err) { + callback(err); + } else { + callback(null, { + username: `${body.response[0].last_name} ${body.response[0].first_name}`, + email: query.raw.email, + }); + } + }); + break; + } default: callback({ message: 'Unknown provider.',