Фон
У нас есть функция, которая синхронизирует записи календаря и контакты между нашим приложением и Office365, используя Apis Office365 REST apis, обозначенный здесь. Мы используем Версия 1 API. Для авторизации мы выполняем авторизацию через Azure AD в виде схемы здесь.
Проблема
В обычном случае (при использовании учетных записей Office365, приобретенных непосредственно у Microsoft), наша система работает так, как ожидалось: мы можем обновить токены пользователя, когда они истекают, и взамен получают новый токен доступа и обновления.
Во втором случае при тестировании с помощью учетных записей Office365 приобретенных через GoDaddy, мы сталкиваемся с проблемой блокировки, которая может быть описана в этой серии шагов: 1. Пользователь отправляется с нашего приложения → Страница входа в Office365. 2. Пользователь вводит адрес электронной почты 3. Пользователь перенаправляется на страницу входа в GoDaddy Office365. 4. Пользователь завершает авторизацию и перенаправляется обратно в наше приложение с кодом доступа в ответе. 5. App Exchange обмена код доступа для access_token и refresh_token из Office365. 6. Пройдет некоторое время, и access_token истекает 7. Приложение обновляет пользователя access_token с помощью refresh_token
Ожидаемое поведение
В этот момент мы ожидаем получить новый access_token, а также новый refresh_token, как и при использовании обычной учетной записи Office365
Фактическое поведение
Только для аккаунтов, приобретенных через GoDaddy, мы не получаем новый токен обновления в ответе после обновления в первый раз.
Очевидно, что если намеревается иметь длительную синхронизацию, это является нарушением, так как пользователь больше не сможет обновить свои токены после этого момента.
Маршрутизаторы Postman (могут сохранять как .json и импортировать Postman для отладки https://gist.github.com/drunkel/7ec66ed33f66d0070148694651699d03 (идентификаторы и секреты были удалены)
Вопрос:
- Это известная проблема?
- Есть ли обходной путь?