Вход/регистрация через ВКонтакте(vk.com)
Для использования регистрации ВКонтакте:
- Войдите ВКонтакте под своей учётной записью.
- Откройте страницу Мои приложения (https://vk.com/apps?act=manage) и нажмите на кнопку Создать.
Заполняем название сайта, ссылку и домен.
После подтверждения создания приложения откроется страница с информацией о приложении.
В настройках приложения получаем ID приложения, секретный ключ (для открытия требует код из смс).
Доверенный redirect URI - это пути, на которые ВКонтакте разрешено перенаправлять пользователя в процессе авторизации. URI передается сети в процессе авторизации с вашего сайта. Эти пути, как правило, URL авторизации и redirect URI — одни и те же, например https://falconspace.ru/api/action/...
Далее можем получить непосредственно код для вставки в разметку страницы
https://dev.vk.com/widgets/auth - виджет авторизации на ВК.
Данный виджет добавляем на страницу сайта (важно, чтобы домен сайта был прописан в настройках приложения ВК).
В качестве ссылки для авторизации берем ссылку на метод входящего API Falcon Space
В качестве параметров данный метод получает:
- идентификатор пользователя
- имя
- фамилия
- URL фотографии профиля пользователя шириной 200px
- URL фотографии профиля пользователя шириной 50px
- hash-код для проверки авторизации как md5 от app_id+user_id+secret_key
Пример SQL-кода нашего метода API:
CREATE PROCEDURE [dbo].[api_vk_vkauth100]
@parameters ExtendedDictionaryParameter READONLY,
@username nvarchar(256)
as
begin
DECLARE @appID NVARCHAR(128) = N'_____________appID_________________'
DECLARE @secretKey NVARCHAR(128) = N'___________SECRET KEY________________'
-- идентификатор пользователя
DECLARE @vkUserID NVARCHAR(128) = ISNULL((SELECT TOP 1 Value2 FROM @parameters WHERE LOWER([Key]) = N'uid' ),N'')
-- имя
DECLARE @firstName NVARCHAR(128) = ISNULL((SELECT TOP 1 Value2 FROM @parameters WHERE LOWER([Key]) = N'first_name'),N'')
-- фамилия
DECLARE @lastName NVARCHAR(128) = ISNULL((SELECT TOP 1 Value2 FROM @parameters WHERE LOWER([Key]) = N'last_name' ),N'')
-- URL фотографии профиля пользователя шириной 200px
DECLARE @photo NVARCHAR(128) = ISNULL((SELECT TOP 1 Value2 FROM @parameters WHERE LOWER([Key]) = N'photo' ),N'')
-- URL фотографии профиля пользователя шириной 50px
DECLARE @photoMin NVARCHAR(128) = ISNULL((SELECT TOP 1 Value2 FROM @parameters WHERE LOWER([Key]) = N'photo_rec' ),N'')
DECLARE @hash NVARCHAR(512) = ISNULL((SELECT TOP 1 Value2 FROM @parameters WHERE LOWER([Key]) = N'hash' ),N'')
DECLARE @input NVARCHAR(MAX) = ISNULL((SELECT TOP 1 Value2 FROM @parameters WHERE LOWER([Key]) = N'inputstream'),N'')
-- @hash - Для проверки авторизации, сравнив его с md5 подписью от app_id+user_id+secret_key, например md5(667481942537fTanpCrNSeuGPbA4ENCo)
SET @hash = LOWER(@hash);
DECLARE @myHash NVARCHAR(512) = LOWER(dbo.as_md5(@appID + @vkUserID + @secretKey));
IF @vkUserID = N'' BEGIN
SELECT 0 [Result], N'Идентификатор пользователя ВКонтакте не может быть равным нулю' Msg
RETURN
END
IF @hash <> @myHash BEGIN
SELECT 0 [Result], N'Не совпали контрольные суммы' Msg
RETURN
END
DECLARE @user NVARCHAR(256) = N'vk' + @vkUserID;
DECLARE @msg NVARCHAR(MAX) = N''
declare @userExist bit = 0
IF EXISTS(SELECT TOP 1 id FROM as_users WHERE username = @user) BEGIN
set @userExist = 1
END
-- SELECT 1 - вывод метаданных о результате операции метода API
SELECT @msg Msg, 1 [Result], 0 errorCode, N'/cabinet' RedirectUrl
-- SELECT 2 - вывод самих данных в API (в случае проблем проверьте что этот запрос приходит непустой)
SELECT 2
-- SELECT 3 Вызов внешних действий
if(@userExist = 1) begin
SELECT N'authcookie' [type], @user username, 1 persist
end else begin
select 'user.createuser' type, @user username, convert(nvarchar(36), newid()) password, @vkUserID name,
convert(nvarchar(36), newid())+ '@mail.ru' email, '' phone,
cast(1 as bit) isApproved, 'client' roles, 'afterCreateClient' spCallback, 1 hideAuth
end
end
В процедуре используем appID и секретный ключ для проверки запросов через хеш MD5.
Если запрос валидный, то проверяем наличие пользователя. Если он есть то авторизуем его. Если нету, то создаем его (в данном случае с ролью client).
В процедуре sql callback для создания пользователя создаем дополнительные объекты, а также прозрачно авторизуем пользователя.
CREATE PROCEDURE [dbo].[outer_afterCreateClient]
@parameters ExtendedDictionaryParameter readonly,
@data nvarchar(128) = '',
@username nvarchar(128) = ''
AS
BEGIN
declare @user nvarchar(256), @password nvarchar(256), @name nvarchar(128), @email nvarchar(128), @phone nvarchar(128)
@result bit, @msg nvarchar(max), @hideAuth nvarchar(128)
select @user =Value2 from @parameters where [Key]= 'username'
select @password =Value2 from @parameters where [Key]= 'password'
select @name =Value2 from @parameters where [Key]= 'name'
select @email =Value2 from @parameters where [Key]= 'email'
select @phone =Value2 from @parameters where [Key]= 'phone'
select @hideAuth =Value2 from @parameters where [Key]= 'hideAuth'
select @result = try_cast(Value2 as bit) from @parameters where [Key]= 'result'
select @msg =Value2 from @parameters where [Key]= 'msg'
if(@result = 0 ) begin
select @result Result, @msg Msg
return
end
if(isnull(@user, '')='') begin
select 0 Result, 'Empty username' Msg
return
end
-- создаем здесь объекты для пользователя ... .....
-- SELECT 1 ReesultModel
select 1 Result, @msgText Msg
declare @outers table(type nvarchar(max),
username nvarchar(max), persist int)
-- SELECT 2 Вызов внешнего действия
if(@hideAuth='1') begin
insert into @outers
select 'authcookie' type, @user, 1
end
select * from @outers
END
В итоге пользователь может через подтверждение в виджете зайти в личный кабинет. Если у него не было еще пользователя, то он будет создан (на основе его VK ID).
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций Прием платежей через Яндекс.Кассу Онлайн-платежи. Интеграция с Робокассой (платежный шлюз) Zapier интеграция на платформе Falcon Space Интеграция коллтрекинга МАНГО ОФИС (режим Площадка) Интеграция API DaData.ru подсказки по адресам Интеграция API Курсы валют Центрального Банка РФ в веб-платформе Falcon Space Интеграция API Почта РФ Интеграция API Служба доставки СДЭК (CDEK) Интеграция API Служба доставки Деловые линии Интеграция импорт и парсинг файла CSV Интеграция API IpGeoBase Город по IP-адресу Интеграция API DaData.ru Город по IP-адресу Как вычислить расстояние между 2 точками с координатами через Google Maps Сканирование штрихкодов и QR кодов через камеру и с картинок Получение данных контрагента по ИНН Прием платежей на сайте через CloudPayments Как сделать интеграцию с Мой Склад Внедрение подсказок dadata на сайт Вывод точек на карте Яндекс. Интеграция с Яндекс Карты Интеграция с телефонией Zadarma.com Получение данных о контрагенте - интеграция с сервисом ЗаЧестныйБизнес Интеграция с AMO CRM Как импортировать данные в базу CRM из Google Контакты Вход/регистрация через ВКонтакте(vk.com) Интеграция CRM с онлайн чатом на сайте (Replain) Как связать yandex metrika clientID с пользователем на сайте и посмотреть полный путь его по сайту? Телеграм. Работа с файлами Как сделать обработку входящей почты (создание клиента в CRM из Email) Интеграция сайта с ChatGPT (openAI) Интеграция с Яндекс Метрика Интернет-эквайринг Тинькоф Банк Интеграция с платежным шлюзом LifePay Как сделать вебхук для передачи данных с Тильды на Falcon Space Пополнение средств через Yookassa (Юкасса) Тинькофф Банк - уведомление в учетную систему по операциям с расчетным счетом Интеграция с Ютуб. Получение роликов канала Интеграция с Ozon, Wildberries - извлечение статистики Вывод данных из различных удаленных SQL Server через технологию Linked Server
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта