Примечание. Ограничение срока действия маркеров в настоящее время являются необязательной функцией и может быть изменено. Сведения о том, как отказаться от функции ограничения срока действия маркеров, см. в разделе Активация дополнительных функций для приложений. Дополнительные сведения см. в статье Ограничение срока действия маркеров доступа пользователей к серверу для приложений GitHub.
Сведения о маркерах доступа пользователей с истекающим сроком действия
Для принудительного обновления маркеров и уменьшения влияние скомпрометированных маркеров можно настроить GitHub App для использования маркеров доступа пользователей, имеющих срок действия. Дополнительные сведения о создании запросов "пользователь-сервер" см. в разделе Идентификация и авторизация пользователей для приложений GitHub.
Срок действия истекающих маркеров пользователя составляет 8 часов. При получении нового маркера доступа "пользователь-сервер" ответ также будет содержать маркер обновления, который можно обменять на новый маркер пользователя и маркер обновления. Маркеры обновления действительны в течение 6 месяцев.
Обновление маркера пользователя с помощью маркера обновления
Чтобы обновить маркера доступа "пользователь-сервер" с истекающим сроком действия, можно обменять refresh_token
на новый маркер доступа и refresh_token
.
POST https://github.com/login/oauth/access_token
Этот запрос обратного вызова отправит вам новый маркер доступа и новый маркер обновления. Этот запрос обратного вызова аналогичен запросу OAuth, который будет использоваться для обмена временным code
для маркера доступа. Дополнительные сведения см. в разделах Идентификация и авторизация пользователей для приложений GitHub и Основы проверки подлинности.
Параметры
Имя | Тип | Описание |
---|---|---|
refresh_token | string | Обязательный. Маркер, создаваемый, когда владелец GitHub App включает маркеры с истечением срока действия и выдает новый маркер доступа пользователя. |
grant_type | string | Обязательный. Значение должно быть refresh_token (требуется спецификацией OAuth). |
client_id | string | Обязательный. Идентификатор клиента для GitHub App. |
client_secret | string | Обязательный. Секрет клиента для GitHub App. |
Ответ
{
"access_token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a",
"expires_in": "28800",
"refresh_token": "ghr_1B4a2e77838347a7E420ce178F2E7c6912E169246c34E1ccbF66C46812d16D5B1A9Dc86A1498",
"refresh_token_expires_in": "15811200",
"scope": "",
"token_type": "bearer"
}
Настройка маркеров пользователя, имеющих срок действия, для существующего приложения GitHub
Можно включить или отключить срок действия маркеров авторизации "пользователь-сервер" в параметрах GitHub App.
-
В правом верхнем углу любой страницы щелкните фотографию профиля, а затем выберите Параметры.
-
На левой боковой панели щелкните Developer settings (Параметры разработчика).
1. На левой боковой панели щелкните Приложения GitHub.
-
Щелкните Изменить рядом с выбранным GitHub App.
-
На левой боковой панели щелкните Дополнительные компоненты.
-
Рядом с пунктом «Срок действия маркера "пользователь-сервер"» щелкните Согласие или Отказ. Применение этого параметра может занять несколько секунд.
Отказ от истечения срока действия маркеров для новых приложений GitHub
При создании новыхGitHub App по умолчанию приложение будет использовать маркеры доступа "пользователь-сервер" с истекающим сроком действия.
Если нужно, чтобы приложение использовало маркеры доступа "пользователь-сервер" без истечения срока действия, можно снять флажок "Истекающий срок действия маркеров авторизации пользователя" на странице параметров приложения.
Существующие данные GitHub Apps, использующие маркеры авторизации "пользователь-сервер", затрагиваются этим новым потоком только, когда владелец приложения включает истечение срока действия маркеров пользователя для своего приложения.
Включение маркеров пользователей с истекающим сроком действия для существующих GitHub Apps требует отправки пользователей через поток OAuth для повторной выдачи новых маркеров пользователей, срок действия которых истекает через 8 часов, и отправки запроса с маркером обновления для получения нового маркера доступа и маркера обновления. Дополнительные сведения см. в разделе Идентификация и авторизация пользователей для приложений GitHub.