import * as VKID from '@vkid/sdk';
// Создание экземпляра шторки.
const floatingOneTap = new VKID.FloatingOneTap();
// Отрисовка шторки в контейнере с именем приложения APP_NAME, светлой темой и на русском языке.
floatingOneTap.render({ appName: APP_NAME, scheme: VKID.Scheme.LIGHT, lang: VKID.Languages.RUS })
.on(VKID.WidgetEvents.ERROR, handleError); // handleError — какой-либо обработчик ошибки.| Параметр | Обязательный | Тип | Значение по умолчанию | Описание |
|---|---|---|---|---|
| appName | Да | String | - | Название приложения |
| scheme | Нет | Enum VKID.Scheme или String | VKID.Scheme.LIGHT | Цветовая схема. Для переключения на темную тему используйте значение VKID.Scheme.DARK |
| lang | Нет | Enum VKID.Languages или number | VKID.Languages.RUS | Локализация. Для переключения на другие языки используйте эти значения |
| showAlternativeLogin | Нет | boolean | false | Отображение дополнительной кнопки для входа в другой аккаунт |
| contentId | Нет | Enum VKID.FloatingOneTapContentId или number | VKID.FloatingOneTapContentId.SIGN_IN_TO_SERVICE | Сценарий использования шторки |
| indent | Нет | FloatingOneTapIndent | — | Отступы от границ экрана |
| indent.top | Нет | number | 12 | Отступ от верхней границы экрана (в версиях для десктопа и планшета) |
| indent.right | Нет | number | 12 | Отступ от правой границы экрана (в версиях для десктопа и планшета) |
| indent.bottom | Нет | number | 12 | Отступ от нижней границы экрана (в версиях для десктопа и планшета) |
| oauthList | - | OAuthName[] | - | Список отображаемых способов входа. Можно подключить дополнительные способы авторизации через аккаунт Одноклассники (VKID.OAuthName.OK) и Mail (VKID.OAuthName.MAIL) |
| fastAuthEnabled | Нет | boolean | true | Отображение состояния кнопки "Продолжить как". В значении false отключается авторизация в один клик: убирается отображение пользователя в кнопке, при клике на OneTap для пользователя откроется окно аутентификации |
| Enum | Сценарий | Заголовок шторки | Текст кнопки в авторизованной зоне | Текст кнопки в неавторизованной зоне | Описание |
|---|---|---|---|---|---|
| SIGN_IN_TO_SERVICE | Вход | Войдите в сервис или зарегистрируйтесь | Продолжить как имя пользователя | Войти с VK ID | Сценарий по умолчанию |
| SIGN_IN_TO_ACCOUNT | Вход | Войти в учетную запись название сервиса | Продолжить как имя пользователя | Войти с VK ID | Альтернативный сценарий входа |
| REGISTRATION_FOR_EVENT | Регистрация на мероприятие | Зарегистрируйтесь на мероприятие | Продолжить как имя пользователя | Продолжить c VK ID | Для образовательных проектов и участия в тендерах |
| SUBMIT_APPLICATIONS | Заявка | Подайте заявку с VK ID | Продолжить как имя пользователя | Продолжить c VK ID | Для e-commerce и сервисов, где требуется оставить заявку на участие |
| MAKE_ORDER_WITH_SERVICE | Оформление заказа | Оформите заказ в название сервиса с VK ID | Оформить как имя пользователя | Оформить с VK ID | Для корзин в e-commerce |
| MAKE_ORDER_WITHOUT_SERVICE | Оформление заказа | Оформите заказ с VK ID | Оформить как имя пользователя | Оформить с VK ID | Для корзин в e-commerce, альтернативный текст |
| FAST_REGISTRATION | Быстрая регистрация | Быстрая регистрация в название сервиса | Продолжить как имя пользователя | Продолжить с VK ID | Для быстрой регистрации в сервисе |
floatingOneTap.on(VKID.FloatingOneTapInternalEvents.LOGIN_SUCCESS, function (payload) {
const code = payload.code;
const deviceId = payload.device_id;
VKID.Auth.exchangeCode(code, deviceId)
.then(onSuccessHandler)
.catch(onErrorHandler);
});