Сообщить об истечении срока действия токена доступа

Я работаю над внедрением Google Actions, и я столкнулся с этой проблемой.

После успешной аутентификации (привязка учетной записи с помощью OAuth) все работает нормально, все намерения (SYNC, QUERY ec ...) работают. Во время тестовой фазы я перезапустил сервер, который обрабатывает аутентификацию и намерения (который также поддерживает пользовательские сеансы на нашей стороне), поэтому пользовательский сеанс, который Google стал недействительным (существующим) на нашей стороне, поэтому при поступлении нового намерения с токеном доступа (который, можно сказать, истек на моей стороне) намерение не выполняется из-за ошибки аутентификации. И вот проблема:

Я пытался ответить authExpired или даже authFailure, как описано здесь: https://developers.google.com/actions/smarthome/develop/process-intents#error-responses

но это просто не работает. Похоже, что до тех пор, пока срок действия токена не истечет на стороне Google, я не могу сделать так, чтобы срок его действия истек «намеренно». Поэтому, чтобы заставить его работать, мы вынуждены отсоединить действие или дождаться истечения срока действия, когда все работает, как ожидалось.

Это умышленное поведение?

Надеюсь, мой вопрос был ясен, если нет, я здесь, чтобы добавить больше деталей.

Спасибо,


person IOOOTABertalan    schedule 22.08.2019    source источник
comment
Не могли бы вы показать код, который вы использовали, и описать, какая часть выходит из строя?   -  person MaartenDev    schedule 22.08.2019
comment
Трудно опубликовать какой-то код, на нашем бэкэнде это не сбой, мы правильно отвечаем (я надеюсь на это) с authExpired, но это не имеет никакого эффекта, даже после ответа Google не запрашивает новый токен доступа. В Google Cloud Platform отображается этот журнал: Found json master errorCode authExpired   -  person IOOOTABertalan    schedule 22.08.2019


Ответы (1)


Похоже, что до тех пор, пока срок действия токена не истечет на стороне Google, я не могу сделать так, чтобы срок его действия истек «намеренно».

Вы правы, что это текущее поведение. Вообще говоря, мы ожидаем, что разработчики будут использовать краткосрочные токены доступа, когда время истечения срока действия имеет значение, поскольку требует повторного предоставления этих токенов.

Разработчики, желающие предоставить пользователям возможность намеренно отозвать доступ (помимо отключения их учетной записи), должны аннулировать токен обновления, предоставленный Google, и продолжать возвращать authFailure при представлении этих учетных данных.

person devunwired    schedule 26.08.2019
comment
Спасибо, что разъяснили этот вопрос. - person IOOOTABertalan; 27.08.2019