2016-10-11 3 views
0

У меня есть сайт, на котором используется hybridauth (библиотека для разрешения проверки подлинности google/facebook/...), которая аутентифицирует учетную запись google и позволяет пользователю входить на наш сайт. Я добавляю компонент на сайт, который позволяет пользователю получить доступ к определенным документам Google-Drive (например, листы excel, встроенные в html). В зависимости от того, кто зарегистрирован в определенных разрешениях, будет установлен (с помощью google drive api), могут ли они просматривать или редактировать или не иметь доступа к файлам.PHP, API Google Диска - вход в систему ID пользователя

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

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

+1

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

ответ

0

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

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

Смежные вопросы