Настройка скрипта sdk-suggest.js для страницы авторизации
На странице, где пользователь будет осуществлять авторизацию, подключите одну из версий скрипта:
<head>
<script src="https://yastatic.net/s3/passport-sdk/autofill/v1/sdk-suggest-with-polyfills-latest.js"></script>
</head>
См. также:
<head>
<script src="https://yastatic.net/s3/passport-sdk/autofill/v1/sdk-suggest-latest.js"></script>
</head>
Синтаксис и параметры
YaAuthSuggest.init(oauthQueryParams, tokenPageOrigin, [suggestParams])
Важно
Группа параметров suggestParams
применяется только для кнопки. Если вы используете виджет, не указывайте эти параметры.
Пример вызова:
YaAuthSuggest.init(
{
client_id: 'c46f0c53093440c39f12eff95a9f2f93',
response_type: 'token',
redirect_uri: 'https://examplesite.com/suggest/token'
},
'https://examplesite.com'
)
.then(({
handler
}) => handler())
.then(data => console.log('Сообщение с токеном', data))
.catch(error => console.log('Обработка ошибки', error));
YaAuthSuggest.init(
{
client_id: 'c46f0c53093440c39f12eff95a9f2f93',
response_type: 'token',
redirect_uri: 'https://examplesite.com/suggest/token'
},
'https://examplesite.com',
{
view: 'button',
parentId: 'container',
buttonView: 'main',
buttonTheme: 'light',
buttonSize: 'm',
buttonBorderRadius: 0
}
)
.then(({
handler
}) => handler())
.then(data => console.log('Сообщение с токеном', data))
.catch(error => console.log('Обработка ошибки', error));
См. также Пример использования скрипта на странице HTML
Описание параметров:
Параметр |
Обязательный |
Тип |
Описание |
oauthQueryParams — содержит query-параметры, с которыми будет открыта страница OAuth-авторизации (см. список всех query-параметров) | |||
|
Да |
|
Идентификатор OAuth-приложения, который был получен после регистрации |
|
Да |
|
Тип запроса |
|
Нет |
|
URL вспомогательной страницы, принимающей токен. Должен совпадать с адресом, который вы указали в поле Redirect URI OAuth-приложения с данным |
tokenPageOrigin — параметр для взаимодействия страницы авторизации со вспомогательной страницей посредством postMessage | |||
Указывается только значение параметра |
Да |
|
Origin вспомогательной страницы, которая принимает токен. Значение параметра должно быть всегда заполнено и не должно содержать символ |
suggestParams — параметры для выбора внешнего вида кнопки. Указываются, только если в качестве блока авторизации используется кнопка, для виджета эта группа параметров не используется. Подобрать нужные значения параметров можно с помощью конструктора кнопок | |||
|
Да |
|
Параметр для отображения кнопки со значением |
|
Нет |
|
Значение атрибута |
|
Нет |
|
Тип кнопки. По умолчанию —
|
|
Нет |
|
Тема кнопки. Параметр необходимо изменять при смене темы страницы вашего сайта или приложения, чтобы кнопка не сливалась с цветом фона. По умолчанию —
|
|
Нет |
|
Размер кнопки, указывающий на базовую высоту, минимальную ширину и переключение на сокращенный вид. По умолчанию —
|
|
Нет |
|
Радиус скругления границ кнопки (значение |
|
Нет |
|
Языковой вариант логотипа на кнопке. По умолчанию —
|
|
Нет |
|
Цвет фона подложки кнопки-иконки. Задается в любом из форматов, поддерживаемых в CSS. Актуально только для кнопки с типом |
|
Нет |
|
Цвет фона подложки кнопки-иконки под курсором. Задается в любом из форматов, поддерживаемых в CSS. Актуально только для кнопки с типом |
|
Нет |
|
Цвет обводки кнопки-иконки. Задается в любом из форматов, поддерживаемых в CSS. Актуально только для кнопки с типом |
|
Нет |
|
Цвет обводки кнопки-иконки под курсором. Задается в любом из форматов, поддерживаемых в CSS. Актуально только для кнопки с типом |
|
Нет |
|
Толщина обводки кнопки-иконки. Актуально только для кнопки с типом |
Конструктор кнопок
Выберите нужные значения параметров, и конструктор отрисует внешний вид кнопки и выведет код скрипта с этими параметрами.
Скопируйте готовый код из конструктора и вставьте его на страницу. Во вставленном коде замените:
-
oauthQueryParams
— на блок{ client_id: 'c46f0c53093440c39f12eff95a9f2f93', response_type: 'token', redirect_uri: 'https://examplesite.com/suggest/token' }
В блоке подставьте нужные значения параметров:
- в параметр
client_id
— идентификатор зарегистрированного на Этапе 1 OAuth-приложения; - в параметр
redirect_uri
— URL вспомогательной страницы, который вы указали в поле Redirect URI OAuth-приложения с даннымclient_id
(если параметр не указан, то будет использовано первое из значений поля Redirect URI).
- в параметр
-
tokenPageOrigin
— на origin вспомогательной страницы, которая принимает токен.
Возвращаемое значение
{
status: 'ok',
handler: handler,
}
{
status: 'error',
code: '...'
}
Параметры ответа:
Параметр |
Описание |
|
Статус ответа:
|
|
Функция, которая возвращает Promise в виде iframe с кнопкой или виджетом, если |
|
Код ошибки, если |
Пример использования на странице HTML
На страницу подключается виджет "Мгновенный вход" или кнопка авторизации:
- Чтобы подключить кнопку авторизации, используйте представленный ниже код целиком.
- Для подключения виджета используйте представленный код без дополнительных параметров
suggestParams
, определяющих внешний вид кнопки.
<!doctype html>
<html lang="ru">
<head>
<meta charSet="utf-8" />
<meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, shrink-to-fit=no, viewport-fit=cover'>
<meta http-equiv='X-UA-Compatible' content='ie=edge'>
<style>
html,
body {
background: #eee;
}
</style>
<script src="https://yastatic.net/s3/passport-sdk/autofill/v1/sdk-suggest-with-polyfills-latest.js"></script>
</head>
<body>
<script>
window.onload = function() {
window.YaAuthSuggest.init({
client_id: 'c46f0c53093440c39f12eff95a9f2f93',
response_type: 'token',
redirect_uri: 'https://examplesite.com/suggest/token'
},
'https://examplesite.com', {
view: 'button',
parentId: 'container',
buttonView: 'main',
buttonTheme: 'light',
buttonSize: 'm',
buttonBorderRadius: 0
}
)
.then(function(result) {
return result.handler()
})
.then(function(data) {
console.log('Сообщение с токеном: ', data);
document.body.innerHTML += `Сообщение с токеном: ${JSON.stringify(data)}`;
})
.catch(function(error) {
console.log('Что-то пошло не так: ', error);
document.body.innerHTML += `Что-то пошло не так: ${JSON.stringify(error)}`;
});
};
</script>
</body>
</html>