У нас есть следующие шаги для аутентификации в Office 365 и получения токенов доступа, необходимых для запроса событий календаря ...
- Отправьте пользователя на https://login.microsoftonline.com/common/oauth2/authorize?response_type=code, передав идентификатор клиентаи URL-адрес перенаправления
- Пользователь входит в систему и перенаправляется обратно на URL-адрес перенаправления со значением? code = строки запроса
- Выполните запрос API на https://login.microsoftonline.com/common/oauth2/token, чтобы получитьтокен для ресурса https://api.office.com/discovery/, передав код, полученный на шаге 2
- Сохраните токен доступа и обновите токен, который возвращается
- Сделайте запрос API к https://api.office.com/discovery/v2.0/me/services чтобы получить список конечных точек, к которым у нас есть доступ
- Для конечной точки, с которой я хочу работать (Office 365 Exchange), сделайте запрос API к https://login.microsoftonline.com/common/oauth2/token, чтобы получитьтокен для ресурса https://outlook.office365.com/, передающий код, полученный на шаге 2
- Сохраните токен доступа и обновите токен, который возвращается
- Используйте токен доступа с шага 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"
}
Похоже, мне нужно передать другой код во второй раз, когда я делаю запрос на получение токенов доступа, но где я могуполучить этот другой код от?