Обработка удаленного доступа к календарю Google API

Я использую этот клиент googleapis nodejs для календаря, и все работает отлично, за исключением того, что если я удаляю доступ из настроек безопасности учетной записи Google, календарь все еще подключен. Есть ли способ проверить удаленный доступ из учетной записи Google? Как обрабатывать эти случаи?


person IntoTheDeep    schedule 27.02.2019    source источник
comment
Я не думаю, что понимаю вопрос, какая учетная запись все еще подключена?   -  person DaImTo    schedule 27.02.2019
comment
Да, аккаунт все еще подключен   -  person IntoTheDeep    schedule 27.02.2019
comment
откуда вы знаете?   -  person DaImTo    schedule 27.02.2019
comment
У меня есть доступ с использованием моего токена   -  person IntoTheDeep    schedule 27.02.2019


Ответы (1)


Когда пользователь запускает ваше приложение в первый раз, ему предоставляется форма согласия. Который просит их предоставить вашему приложению разрешение на доступ к их данным календаря Google. С этого момента, когда ваше приложение запускается, пользователю может потребоваться снова войти в систему, но ему не нужно будет предоставлять разрешение вашему приложению. Если у вас есть токен обновления, вы сможете использовать его, когда захотите запросить новый токен доступа. токен доступа будет действителен в течение одного часа.

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

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

Токены доступа работают в течение одного часа, они не авторизуются повторно, в течение этого времени предполагается, что они действительны. (На самом деле это может зависеть от области действия и рассматриваемого API, а также от того, как работает сервер политик Google.)

маркер доступа разработан как автономная система разрешений. Пока у вас есть токен доступа для правильной области действия, большинство API предполагают, что у вас есть доступ. Однако в случае, если этот метод получает доступ к важным данным, у них может быть настроен сервер политик. Этот сервер может выполнять дополнительную проверку токена доступа, чтобы убедиться, что у пользователя все еще есть доступ, даже если у него есть действительный токен доступа. Однако это может занять очень много времени и ресурсов, поскольку необходимо переоценивать каждый вызов, чтобы убедиться, что у пользователя все еще есть доступ. Это как бы противоречит цели наличия токенов доступа, действительных в течение часа.

person DaImTo    schedule 27.02.2019
comment
Попробуйте использовать токен обновления, если он работает, то пользователь предоставил вам доступ, если нет, то, вероятно, вас удалили. Это должны быть экземпляры, когда пользователь удалил вас. Срок действия токена доступа истекает через час после того, как вы его запросили, пользователь, удаляющий ваш доступ, не повлияет на него. - person DaImTo; 27.02.2019
comment
Я взял на себя смелость отредактировать этот ответ. Первоначально было заявлено, что токены доступа будут действовать в течение одного часа, даже если пользователь отзовет разрешение. Это неправда. Если пользователь отзывает разрешение, все токены доступа немедленно (примерно в течение минуты) отзываются. - person pinoyyid; 01.03.2019
comment
Я взял на себя смелость вернуть его обратно, потому что это не так в отношении всех областей действия и API, которые я предлагаю вам проверить. - person DaImTo; 01.03.2019
comment
@pinoyyid не редактируйте ответы других людей, чтобы они соответствовали вашим собственным идеям. Либо оставьте комментарий, либо напишите свой собственный ответ. Поднимите другой флаг, если это произойдет снова DalmTo. - person ; 01.03.2019
comment
Исходный пост фактически неверен, как объяснено в моем комментарии. Это не идея, это факт. Я протестировал его, и поведение было именно таким, как я ожидал. Шаги для воссоздания: получить токен доступа. Получить диск.о. наблюдать за правильным ответом. Отозвать разрешение. Подождите 1 минуту для распространения CRL. Получить диск.о. обратите внимание на ошибку 401. - person pinoyyid; 01.03.2019