Я использую Google Sign-In для своего веб-сайта, и базовая настройка работает нормально, однако я сталкиваюсь с проблемой управления статусом входа пользователя.
Я наткнулся на приведенный ниже вопрос SO, в котором предлагалось использовать sessionStorage / localStorage для переноса статуса входа в систему на страницах веб-сайта, и когда пользователь выходит из системы, сохраненную информацию следует очистить.
https://stackoverflow.com/a/40206395/5345604
Боюсь, я не совсем понимаю предложенную реализацию, хотя. Что если пользователь выйдет из своего аккаунта Google где-то еще, например, из Gmail или из Google Maps? В этом случае, когда пользователь повторно посещает мой веб-сайт, как я могу определить, что он больше не вошел в Google, и удалить сохраненный сеанс на стороне клиента? Или это не так, как это должно работать?
И в дополнение к вышеупомянутому вопросу, я также думаю об аутентификации с моим бэкэндом (PHP). Учитывая идентификационный токен, буду ли я отправлять его на свой сервер и каждый раз проходить аутентификацию с помощью клиентской библиотеки Google API? Или я должен только аутентифицировать пользователя один раз и сохранить флаг индикации в $ _SESSION, а затем уничтожить сеанс, когда пользователь выйдет из системы? (Учитывая, что токен на самом деле является JWT, я полагаю, что реализация подразумевает отсутствие состояния и требует, чтобы токен каждый раз передавался на сервер? Есть ли какие-либо проблемы для его реализации с традиционным подходом сеанса на стороне сервера? )
Я могу ответить только на ваш первый вопрос: логин вашего сайта полностью отделен от статуса логина других сервисов Google. Даже YouTube отделен от google.com.
Других решений пока нет …