Обмен токена на информацию о пользователе
По запросу информации о пользователе API Яндекс ID возвращает все данные, права на которые дает указанный в запросе OAuth-токен.
Состав ответа сервиса зависит от прав приложения, выбранных при регистрации на Яндекс OAuth. Если выбрано несколько прав, ответ составляется из элементов, специфических для каждого из прав.
Примечание
Для запроса к API Яндекс ID можно использовать OAuth-токен с правами доступа к любому из сервисов Яндекса. Однако расширенный доступ к данным пользователя дают только токены с правами доступа из секции API Яндекс ID, настроенные при регистрации приложения.
Формат запроса
Запрос информации о пользователе Яндекса формируется следующим образом:
GET https://login.yandex.ru/info?
[& format=json | xml | jwt]
[& jwt_secret=<секретный ключ>]
Authorization: OAuth <OAuth-токен>
GET https://login.yandex.ru/info?
& oauth_token=<OAuth-токен>
[& format=json | xml | jwt]
[& jwt_secret=<секретный ключ>]
Внимание
При использовании этого способа OAuth-токен передается в параметре GET-запроса и может сохраниться в открытом виде в истории браузера или в access-логах любого промежуточного хоста. Сохраненным OAuth-токеном может воспользоваться злоумышленник.
Параметры запроса
Параметр |
Значение |
Описание |
|
<OAuth-токен> |
OAuth-токен, который разрешает доступ к данным учетной записи пользователя через API Яндекс ID. От прав, которые дает указанный в запросе OAuth-токен, зависит содержание ответа. OAuth-токен должен быть указан в запросе одним из двух способов:
|
|
xml | json | jwt |
Формат возвращаемых данных. Возможные значения:
|
|
<секретный ключ> |
Секрет, которым будет подписан JWT. Если параметр не передан, вместо него будет использован |
Формат ответа
В ответе сервиса возвращается набор стандартных и дополнительных полей в зависимости от прав приложения.
Формат тела ответа по умолчанию — JSON. Вы также можете получить ответ в формате XML или JWT: для этого укажите в запросе параметр format
со значением xml
или jwt
:
- Ответ в формате XML имеет такую же структуру, как и JSON. При этом данные обрамляются корневым тегом
<user>
. - Ответ в формате JWT всегда имеет стандартный набор полей. В зависимости от выбранных прав, помимо стандартных полей, возвращаются и специальные поля.
Стандартные параметры ответа
Ответ на запрос информации о пользователе содержит набор полей, перечисленных ниже:
Свойство |
Описание |
|
Логин пользователя на Яндексе. |
|
Уникальный идентификатор пользователя Яндекса. |
|
Идентификатор приложения, для которого был выдан переданный в запросе OAuth-токен. Доступен в свойствах приложения. Чтобы открыть свойства, нажмите на название приложения. |
|
Аналог id. Поле доступно только в формате JWT. |
|
Идентификатор авторизованного пользователя в Яндексе. Формируется на стороне Яндекса на основе пары |
Дополнительные параметры ответа
Дополнительные поля ответа зависят от прав, выбранных при регистрации приложения на Яндекс OAuth и предоставленных OAuth-токеном:
Если выбрано несколько прав, ответ составляется из элементов, специфических для каждого из прав.
Отсутствие прав из секции API Яндекс ID
Запрос к API Яндекс ID можно составить, используя OAuth-токен, выданный для другого сервиса Яндекса. Если токен валиден, API возвращает следующий ответ:
{
"login": "ivan",
"id": "1000034426",
"client_id": "4760187d81bc4b7799476b42b5103713",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
<?xml version="1.0" encoding="utf-8"?>
<user>
<login>ivan</login>
<id>1000034426</id>
<client_id>4760187d81bc4b7799476b42b5103713</client_id>
<psuid>1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge</psuid>
</user>
{
"iat": 1620915565,
"jti": "384b6169-b3f6-11eb-a7cd-0c42a10aa38c",
"exp": 1652451414,
"iss": "login.yandex.ru",
"uid": 1000034426,
"login": "ivan",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
Ответ содержит стандартный набор полей.
Доступ к адресу электронной почты
При запросе с OAuth-токеном, дающим право Адрес электронной почты, API возвращает следующий ответ:
{
"login": "ivan",
"old_social_login": "uid-mmzxrnry",
"default_email": "test@yandex.ru",
"id": "1000034426",
"client_id": "4760187d81bc4b7799476b42b5103713",
"emails": [
"test@yandex.ru",
"other-test@yandex.ru"
],
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
<?xml version="1.0" encoding="utf-8"?>
<user>
<login>ivan</login>
<old_social_login>uid-mmzxrnry</old_social_login>
<default_email>test@yandex.ru</default_email>
<id>1000034426</id>
<client_id>4760187d81bc4b7799476b42b5103713</client_id>
<emails>
<address>test@yandex.ru</address>
<address>other-test@yandex.ru</address>
</emails>
<psuid>1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge</psuid>
</user>
{
"iat": 1620915565,
"jti": "384b6169-b3f6-11eb-a7cd-0c42a10aa38c",
"exp": 1652451414,
"iss": "login.yandex.ru",
"uid": 1000034426,
"login": "ivan",
"email": "test@yandex.ru",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
Ответ содержит стандартный набор полей, а также дополнительные параметры:
Свойство |
Описание |
|
Массив электронных адресов пользователя. В настоящее время включает единственный e-mail — e-mail по умолчанию. |
|
E-mail по умолчанию, предназначенный для связи с пользователем. |
|
Аналог default_email. Поле доступно только в формате JWT. |
Доступ к портрету пользователя
При запросе с OAuth-токеном, дающим право Портрет пользователя, API возвращает следующий ответ:
{
"login": "ivan",
"old_social_login": "uid-mmzxrnry",
"id": "1000034426",
"client_id": "4760187d81bc4b7799476b42b5103713",
"is_avatar_empty": false,
"default_avatar_id": "131652443",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
<?xml version="1.0" encoding="utf-8"?>
<user>
<login>zamulla.aleksey</login>
<old_social_login>uid-mmzxrnry</old_social_login>
<id>31652443</id>
<client_id>4760187d81bc4b7799476b42b5103713</client_id>
<is_avatar_empty>False</is_avatar_empty>
<default_avatar_id>31652443</default_avatar_id>
<psuid>1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge</psuid>
</user>
{
"iat": 1620915565,
"jti": "384b6169-b3f6-11eb-a7cd-0c42a10aa38c",
"exp": 1652451414,
"iss": "login.yandex.ru",
"uid": 1000034426,
"login": "ivan",
"avatar_id": "131652443",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
Ответ содержит стандартный набор полей, а также дополнительные параметры:
Свойство |
Описание |
|
Признак того, что в поле |
|
Идентификатор портрета пользователя Яндекса.
Если портрета с переданным идентификатором нет, по ссылке будет заглушка указанного размера. Доступные размерыЧтобы получить изображение нужного размера, Яндекс пытается найти на портрете лицо и вырезает изображение из этой области. Значения, которые можно задать в URL портрета:
|
|
Аналог default_avatar_id. Поле доступно только в формате JWT. |
Доступ к дате рождения
При запросе с OAuth-токеном, дающим право Дата рождения, API возвращает следующий ответ:
{
"login": "ivan",
"old_social_login": "uid-mmzxrnry",
"birthday": "1987-03-12",
"id": "1000034426",
"client_id": "4760187d81bc4b7799476b42b5103713",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
<?xml version="1.0" encoding="utf-8"?>
<user>
<login>ivan</login>
<old_social_login>uid-mmzxrnry</old_social_login>
<birthday>1987-03-12</birthday>
<id>1000034426</id>
<client_id>4760187d81bc4b7799476b42b5103713</client_id>
<psuid>1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge</psuid>
</user>
{
"iat": 1620915565,
"jti": "384b6169-b3f6-11eb-a7cd-0c42a10aa38c",
"exp": 1652451414,
"iss": "login.yandex.ru",
"uid": 1000034426,
"login": "ivan",
"birthday": "1987-03-12",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
Ответ содержит стандартный набор полей, а также дополнительный параметр:
Свойство |
Описание |
|
Дата рождения пользователя в формате ГГГГ-ММ-ДД. Неизвестные части даты заполняются нулями, например: Если дата рождения пользователя неизвестна:
|
Доступ к логину, имени и фамилии, полу
При запросе с OAuth-токеном, дающим право Логин, имя и фамилия, пол, API возвращает следующий ответ:
{
"first_name": "Иван",
"last_name": "Иванов",
"display_name": "Ivan",
"real_name": "Иван Иванов",
"login": "ivan",
"old_social_login": "uid-mmzxrnry",
"sex": "male",
"id": "1000034426",
"client_id": "4760187d81bc4b7799476b42b5103713",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
<?xml version="1.0" encoding="utf-8"?>
<user>
<first_name>Иван</first_name>
<last_name></last_name>
<display_name>Ivan</display_name>
<real_name>Иван Иванов</real_name>
<login>ivan</login>
<old_social_login>uid-mmzxrnry</old_social_login>
<sex>male</sex>
<id>1000034426</id>
<client_id>4760187d81bc4b7799476b42b5103713</client_id>
<psuid>1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge</psuid>
</user>
{
"iat": 1620915565,
"jti": "384b6169-b3f6-11eb-a7cd-0c42a10aa38c",
"exp": 1652451414,
"iss": "login.yandex.ru",
"login": "ivan",
"uid": 1000034426,
"display_name": "Ivan",
"name": "Иван Иванов",
"gender": "male",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
Ответ содержит стандартный набор полей, а также дополнительные параметры:
Свойство |
Описание |
|
Имя пользователя, указанное им в Яндекс ID. |
|
Фамилия пользователя, указанная им в Яндекс ID. |
|
Имя, которое отображается для данной учетной записи в интерфейсе Яндекса. |
|
Имя и фамилия пользователя, указанные им в Яндекс ID. |
|
Пол пользователя. Возможные значения:
|
|
Аналог sex. Поле доступно только в формате JWT. |
Доступ к номеру телефона
При запросе с OAuth-токеном, дающим право Номер телефона, API возвращает следующий ответ:
{
"login": "ivan",
"id": "1000034426",
"client_id": "4760187d81bc4b7799476b42b5103713",
"default_phone": {
"id": 12345678,
"number": "+79037659418"
},
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
<?xml version="1.0" encoding="utf-8"?>
<user>
<login>ivan</login>
<id>1000034426</id>
<client_id>4760187d81bc4b7799476b42b5103713</id>
<psuid>1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge</psuid>
<default_phone>
<id>12345678</id>
<number>+79037659418</number>
</default_phone>
</user>
{
"iat": 1620915565,
"jti": "384b6169-b3f6-11eb-a7cd-0c42a10aa38c",
"exp": 1652451414,
"iss": "login.yandex.ru",
"uid": 1000034426,
"login": "ivan",
"number": "+79037659418",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
Ответ содержит стандартный набор полей, а также дополнительные параметры:
Свойство |
Описание |
|
Телефон по умолчанию, предназначенный для связи с пользователем. Поле содержит параметры:
|
Пример
Если приложение имеет OAuth-токен, который дает приложению все права API Яндекс ID, ответ содержит все стандартные и дополнительные параметры:
{
"first_name": "Иван",
"last_name": "Иванов",
"display_name": "ivan",
"emails": [
"test@yandex.ru",
"other-test@yandex.ru"
],
"default_email": "test@yandex.ru",
"default_phone": {
"id": 12345678,
"number": "+79037659418"
},
"real_name": "Иван Иванов",
"is_avatar_empty": false,
"birthday": "1987-03-12",
"default_avatar_id": "131652443",
"login": "ivan",
"old_social_login": "uid-mmzxrnry",
"sex": "male",
"id": "1000034426",
"client_id": "4760187d81bc4b7799476b42b5103713",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}
<?xml version="1.0" encoding="utf-8"?>
<user>
<first_name>Иван</first_name>
<last_name>Иванов</last_name>
<display_name>ivan</display_name>
<emails>
<address>test@yandex.ru</address>
<address>other-test@yandex.ru</address>
</emails>
<default_email>test@yandex.ru</default_email>
<default_phone>
<id>12345678</id>
<number>+79037659418</number>
</default_phone>
<real_name>Иван Иванов</real_name>
<is_avatar_empty>False</is_avatar_empty>
<birthday>1987-03-12</birthday>
<default_avatar_id>131652443</default_avatar_id>
<login>ivan</login>
<old_social_login>uid-mmzxrnry</old_social_login>
<sex>male</sex>
<id>1000034426</id>
<client_id>4760187d81bc4b7799476b42b5103713</client_id>
<psuid>1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge</psuid>
</user>
{
"iat": 1620915565,
"jti": "384b6169-b3f6-11eb-a7cd-0c42a10aa38c",
"exp": 1652451414,
"iss": "login.yandex.ru",
"uid": 1000034426,
"login": "ivan",
"avatar_id": "131652443",
"email": "test@yandex.ru",
"number": "+79037659418",
"display_name": "ivan",
"name": "Иван Иванов",
"gender": "male",
"psuid": "1.AAceCw.tbHgw5DtJ9_zeqPrk-Ba2w.qPWSRC5v2t2IaksPJgnge"
}