Cаджест авторизации
Саджест авторизации отобразится на сайте, если пользователь переходит на сайт с cookie Яндекса. Когда пользователь нажмет на странице браузера Продолжить, он будет переадресован на экран OAuth-авторизации с перечнем скоупов для запроса.
Требования к подключению
- Пользователь запретил открытие iframe.
- Браузер блокирует сторонние cookie.
- Пользователь полностью отключил cookie. В этом случае при вызове YaAuthSuggest.init вернется ошибка.
- Пользователь отключил JS.
Перед началом
- Подготовьте страницу, на которую будет подключен саджест.
- Подготовьте страницу, которая будет принимать OAuth-токен. Страница будет отображаться несколько миллисекунд, поэтому можно оставить белый экран.
- Зарегистрируйте OAuth-приложение, если вы еще этого не сделали. Добавьте в него необходимые скоупы.
- В зарегистрированном OAuth-приложении, включите галочку в разделе Callback URI ссылку на страницу из пункта 2.. Добавьте в список
Подключение
После выполнения этих пунктов можно начать подключение саджеста.
- Страница, на которую подключается саджест. Необходимо подключить скрипт
sdk-suggest.js
. - Саджест в iframe.
- OAuth-авторизация.
- Страница, принимающая токен. Необходимо подключить скрипт
sdk-suggest-token.js
.
Скрипт 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)
Параметры
oauthQueryParams
client_id
— идентификатор OAuth-приложения, который был получен после регистрации. Обязательный параметр.response_type
— тип запроса. Обязательный параметр.redirect_uri
— URI для передачи результата авторизации. Дополнительный параметр. Если в приложение с даннымclient_id
добавлено несколькоcallback_uri
, тогда по умолчанию произойдет редирект на первый из них.
См. список всех query-параметров.
tokenPageOrigin
*
(звездочка).Возвращаемое значение
Функция возвращает Promise, который будет разрешен объектом, содержащим статус ответа, и ссылку на метод, открывающий саджест:
status
Статус ответа:
ok
— успешен.error
— завершен ошибкой.
handler
code
Пример вызова
YaAuthSuggest.init(
{
client_id: 'c46f0c53093440c39f12eff95a9f2f93',
response_type: 'token',
redirect_uri: 'https://example.com/suggest/token'
},
'https://example.com'
)
.then(({handler}) => handler())
.then(data => console.log('Сообщение с токеном', data))
.catch(error => console.log('Обработка ошибки', error));
Скрипт sdk-suggest-token.js
Подключение
Подключите один из скриптов на странице, принимающей OAuth-токен:
<head>
<script src="https://yastatic.net/s3/passport-sdk/autofill/v1/sdk-suggest-token-with-polyfills-latest.js"></script>
</head>
<head>
<script src="https://yastatic.net/s3/passport-sdk/autofill/v1/sdk-suggest-token-latest.js"></script>
</head>
Первый скрипт предоставляет полифилы.
Синтаксис
YaSendSuggestToken(origin, extraData)
Параметры
origin
postMessage
с токеном. Значение параметра должно быть всегда заполнено и не содержать символ *
(звездочка). extraData
Возвращаемое значение
Функция получает информацию о токене из location.search
и location.hash
, а затем отправляет postMessage
с информацией на страницу с саджестом и закрывает текущее окно. Ничего не возвращает.
Пример вызова
YaSendSuggestToken(
'https://example.com',
{ flag: true }
)