Вход/регистрация через ВКонтакте(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 (Юкасса) Тинькофф Банк - уведомление в учетную систему по операциям с расчетным счетом Интеграция с Ютуб. Получение роликов канала
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом
Это быстрое внесение изменений
по ходу эксплуатации программы. Как создается функционал на платформе
Это простой удобный интерфейс
адаптация под мобильные устройства. Про юзабилити платформы