PHP, Google Drive API — ввод идентификатора пользователя

#php #google-drive-api

#php #google-drive-api

Вопрос:

У меня есть сайт, который использует hybridauth (библиотеку для разрешения Google / facebook /… аутентификация), который проверяет подлинность учетной записи Google и позволяет пользователю войти на наш сайт. Я добавляю на сайт компонент, который позволяет пользователю получать доступ к определенным документам Google-Drive (например, к таблицам Excel, встроенным в html). В зависимости от того, кто вошел в систему, будут установлены определенные разрешения (с использованием Google Drive api), могут ли они просматривать или редактировать или нет доступа к файлам.

Проблема в том, что иногда с машиной может быть связано несколько учетных записей Google … и может случиться так, что человек может войти на наш сайт с одной учетной записью Google, перейти на главную страницу Google (в новой вкладке) и выйти / войти с другой учетной записью. Затем, если они попытаются получить доступ к документам Google, он использует настройки разрешений для этого нового входа (вместо учетной записи Google, которую они использовали в hybridauth для входа на наш сайт). Наши пользователи не очень техничны, и когда они начинают видеть экраны «Запросить доступ», они не знают, что делать. Я хочу иметь возможность определить, совпадает ли учетная запись Google, которую они используют для доступа к нашим файлам на Google Диске, с учетной записью, с помощью которой они вошли на наш сайт, и если нет, я опубликую на сайте заметку с указанием того, что им делать. Могу ли я в любом случае это сделать? Есть ли в API google-drive какой-то способ определить, какая учетная запись Google пытается получить доступ к файлу, а затем в PHP я могу увидеть, совпадает ли это с именем пользователя в сеансе?

Пожалуйста, дайте мне знать, если это выполнимо, и если да, дайте мне несколько примеров кода. Дайте мне знать, если мне нужно что-нибудь уточнить.

Комментарии:

1. быстрый ответ заключается в том, что токен доступа можно использовать для извлечения JWT с данными связанного пользователя.

Ответ №1:

Вам необходимо создать и сохранить свой НОВЫЙ токен в своей базе данных после аутентификации пользователя через некоторый API AUTH. И вы должны использовать этот токен для работы с вашим сайтом. Когда пользователь регистрируется, например, через Google OAuth, и он будет сохранен в системе авторизации вашего сайта. После этого вы можете забыть об авторизации в Google. Вы будете использовать собственный токен. И если у пользователя есть несколько учетных записей Coogle, он будет работать с одним из них все время.

Токен должен храниться в файле cookie на стороне пользователя. И удалите его только после выхода из системы на вашем сайте или истечения срока действия.