Новая ошибка «Код авторизации OAuth2 уже погашен» при получении кода доступа к ресурсу Office 365 - PullRequest
0 голосов
/ 30 января 2019

У нас есть следующие шаги для аутентификации в Office 365 и получения токенов доступа, необходимых для запроса событий календаря ...

  1. Отправьте пользователя на https://login.microsoftonline.com/common/oauth2/authorize?response_type=code, передав идентификатор клиентаи URL-адрес перенаправления
  2. Пользователь входит в систему и перенаправляется обратно на URL-адрес перенаправления со значением? code = строки запроса
  3. Выполните запрос API на https://login.microsoftonline.com/common/oauth2/token, чтобы получитьтокен для ресурса https://api.office.com/discovery/, передав код, полученный на шаге 2
  4. Сохраните токен доступа и обновите токен, который возвращается
  5. Сделайте запрос API к https://api.office.com/discovery/v2.0/me/services чтобы получить список конечных точек, к которым у нас есть доступ
  6. Для конечной точки, с которой я хочу работать (Office 365 Exchange), сделайте запрос API к https://login.microsoftonline.com/common/oauth2/token, чтобы получитьтокен для ресурса https://outlook.office365.com/, передающий код, полученный на шаге 2
  7. Сохраните токен доступа и обновите токен, который возвращается
  8. Используйте токен доступа с шага 7чтобы получить события календаря

Это используетсяработать нормально, но сегодня я получаю другой результат от вызова API на шаге 6

, который я использовал для получения токена доступа и обновления токена, который я мог бы использовать для ресурса outlook.office365.com, нотеперь я получаю сообщение об ошибке, подобное следующему ...

{
    "error":"invalid_grant",
    "error_description":"AADSTS70002: Error validating credentials. AADSTS54005: OAuth2 Authorization code was already redeemed, please retry with a new valid code or use an existing refresh token.
    Trace ID: 37f11c2c-6450-4040-b297-48268c6d4b00
    Correlation ID: afdeb0cb-c14a-4267-9a5d-2422a1f84d62
    Timestamp: 2019-01-29 22:26:24Z",
    "error_codes":[70002,54005],
    "timestamp":"2019-01-29 22:26:24Z",
    "trace_id":"37f11c2c-6450-4040-b297-48268c6d4b00",
    "correlation_id":"afdeb0cb-c14a-4267-9a5d-2422a1f84d62"
}

Похоже, мне нужно передать другой код во второй раз, когда я делаю запрос на получение токенов доступа, но где я могуполучить этот другой код от?

...