Обновить токен
Получение токена в обмен на refresh-токен:
Приложение отправляет POST-запрос с refresh-токеном.
Яндекс.OAuth возвращает токен и новый refresh-токен в теле ответа.
Полученный токен можно сохранить в приложении и использовать для запросов к API до истечения времени его жизни. Токен должен быть доступен только вашему приложению, поэтому не рекомендуется сохранять его в куках браузера, открытых конфигурационных файлах и т. п.
Обмен refresh-токена на OAuth-токен
Приложение отправляет refresh-токен, а также свой идентификатор и пароль в POST-запросе.
POST /token HTTP/1.1
Host: oauth.yandex.ru
Content-type: application/x-www-form-urlencoded
Content-Length: <длина тела запроса>
[Authorization: Basic <закодированная строка client_id:client_secret
>]
grant_type=refresh_token
& refresh_token=<refresh_token>
[& client_id=<идентификатор приложения>]
[& client_secret=<пароль приложения>]
Параметр | Описание |
---|---|
Обязательные параметры | |
grant_type | Способ запроса OAuth-токена. Если вы используете refresh-токен, укажите значение «refresh_token» |
refresh_token | Refresh-токен, полученный от Яндекс.OAuth вместе с OAuth-токеном. Время жизни токенов совпадает. |
Дополнительные параметры | |
client_id | Идентификатор приложения. Доступен в свойствах приложения (нажмите название приложения, чтобы открыть его свойства). Пароль и идентификатор приложения также можно передать в заголовке Authorization. |
client_secret | Пароль приложения. Доступен в свойствах приложения (нажмите название приложения, чтобы открыть его свойства). Пароль и идентификатор приложения также можно передать в заголовке Authorization. |
Параметр | Описание |
---|---|
Обязательные параметры | |
grant_type | Способ запроса OAuth-токена. Если вы используете refresh-токен, укажите значение «refresh_token» |
refresh_token | Refresh-токен, полученный от Яндекс.OAuth вместе с OAuth-токеном. Время жизни токенов совпадает. |
Дополнительные параметры | |
client_id | Идентификатор приложения. Доступен в свойствах приложения (нажмите название приложения, чтобы открыть его свойства). Пароль и идентификатор приложения также можно передать в заголовке Authorization. |
client_secret | Пароль приложения. Доступен в свойствах приложения (нажмите название приложения, чтобы открыть его свойства). Пароль и идентификатор приложения также можно передать в заголовке Authorization. |
Идентификатор и пароль приложения также можно отправить в заголовке Authorization
, закодировав строку <client_id>:<client_secret>
методом base64. Если Яндекс.OAuth получает заголовок Authorization
, параметры client_id
и client_secret
в теле запроса игнорируются.
Формат ответа с токеном
Яндекс.OAuth возвращает OAuth-токен, refresh-токен и время их жизни в JSON-формате:
200 OK
Content-type: application/json
{
"access_token": "AQAAAACy1C6ZAAAAfa6vDLuItEy8pg-iIpnDxIs",
"refresh_token": "1:GN686QVt0mmakDd9:A4pYuW9LGk0_UnlrMIWklkAuJkUWbq27loFekJVmSYrdfzdePBy7:A-2dHOmBxiXgajnD-kYOwQ",
"token_type": "bearer",
"expires_in": 124234123534
}
Ключ | Описание |
---|---|
access_token | OAuth-токен с запрошенными правами или с правами, указанными при регистрации приложения. |
refresh_token | Токен, который можно использовать для продления срока жизни соответствующего OAuth-токена. |
token_type | Тип выданного токена. Всегда принимает значение «bearer». |
expires_in | Время жизни токена в секундах. |
Ключ | Описание |
---|---|
access_token | OAuth-токен с запрошенными правами или с правами, указанными при регистрации приложения. |
refresh_token | Токен, который можно использовать для продления срока жизни соответствующего OAuth-токена. |
token_type | Тип выданного токена. Всегда принимает значение «bearer». |
expires_in | Время жизни токена в секундах. |
Если выдать токен не удалось, то ответ содержит описание ошибки:
{
"error_description": "<описание ошибки>",
"error": "<код ошибки>"
}
Возможные коды ошибок:
invalid_client
― приложение с указанным идентификатором (параметрclient_id
) не найдено или заблокировано. Этот код также возвращается, если в параметреclient_secret
передан неверный пароль приложения.invalid_grant
— неверный или просроченный refresh-токен . Этот код также возвращается, если в refresh-токен принадлежит другому приложению (не соответствует переданному client_id).invalid_request
― неверный формат запроса (один из параметров не указан, указан дважды, или передан не в теле запроса).unauthorized_client
— приложение было отклонено при модерации или только ожидает ее.unsupported_grant_type
― недопустимое значение параметраgrant_type
.Basic auth required
— тип авторизации, указанный в заголовкеAuthorization
, отличен отBasic
.Malformed Authorization header
— заголовокAuthorization
не соответствует формату<client_id>:<client_secret>
, или эта строка не закодирована методом base64.