Запросите электронную почту, не генерируя новый токен доступа - PullRequest
0 голосов
/ 29 апреля 2019

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

Проблема в том, что при первом входе в систему все работает нормально, но после того, как пользователь выходит из системы, а затем снова входит в систему, генерируется новый токен доступа, когда я использую gapi.auth2.getAuthInstance().signIn() для входа в систему.

После второго входа в систему происходит обновлениетокен, сохраненный при первом входе в систему, больше не работает, и запросы, сделанные с этим токеном, возвращают ошибку:

error: 'invalid_grant',
error_description: 'Token has been expired or revoked.',

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

Есть лида, чтобы достичь того, что мне нужно?Я попытался передать пустую область в функции gapi.client.init и реальные области в функцию grantOfflineAccess, но пустая область действия недопустима для функции init, как кажется.

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

Заранее благодарим за любую помощь.

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