Поэтому я пытаюсь реализовать Google Login в моем приложении. На стороне клиента у меня есть Android-приложение и веб-приложение, которое взаимодействует с успокоительным API-сервером в PHP (Cartalyst Sentinel 2.0 для аутентификации).
Я сталкиваюсь с несколькими проблемами.
REDIRECT URI
//setting up google api client
$client = new Google_Client();
$client->setClientId($CLIENT_ID_WEB);
$client->setClientSecret($CLIENT_SECRET_WEB);
$client->setRedirectUri($redirectUri);
$client->setScopes(array('https://www.googleapis.com/auth/userinfo.email','https://www.googleapis.com/auth/userinfo.profile','https://www.googleapis.com/auth/plus.me'));
Чтобы создать экземпляр клиента, мне нужно предоставить перенаправление Uri. Теперь в случае, когда клиент является webApp, проблем не возникает, поскольку я предоставляю один и тот же URI перенаправления на стороне клиента и сервера. Но когда дело доходит до Android, RIRIRECT URI не существует. Я где-то читал, что «postmessage» как редирект URI работает, но не для меня. Без URI перенаправления клиент выдает ошибку «неверный токен json»
Любая помощь в этом?
Кажется, что нет проблем в случае обычного входа в систему (api.domain.xyz/login) через учетные данные. Но когда на стороне сервера я вхожу в клиент с другого маршрута (api.domain.xyz/blabla/google/login), значение для cookie cartalyst_sentinel становится нулевым, даже если установленные заголовки cookie были отправлены как заголовки ответа.
Отправляется заголовок Set-Cookie (есть два, которые меня беспокоят, но это работает и в случае родного входа в систему)
Cookie становится нулевым в запросах, которые следуют после входа в систему
Я уже много читал об этих проблемах и попробовал n методов, но ни один из них не работает.
Было только две вещи, которые казались немного обоснованными.
Случай URI перенаправления может быть разобран путем создания экземпляра google api-клиента с помощью файла конфигурации (возможно, google json или ключ разработчика).
Случай отсутствия cookie-файлов связан с междоменными cookie-файлами или, может быть, из-за того, что вход осуществляется через вложенный маршрут (звучит глупо, я знаю, но нашел его где-то в Google).
Любая помощь приветствуется.
Задача ещё не решена.
Других решений пока нет …