Google SignUp / Войти, используя PHP-сервер и клиент как веб и Android

Поэтому я пытаюсь реализовать Google Login в моем приложении. На стороне клиента у меня есть Android-приложение и веб-приложение, которое взаимодействует с успокоительным API-сервером в PHP (Cartalyst Sentinel 2.0 для аутентификации).

Я сталкиваюсь с несколькими проблемами.

  1. 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»

Любая помощь в этом?

  1. cartalyst_sentinel печенье как ноль в запросах от веб-клиента.

Кажется, что нет проблем в случае обычного входа в систему (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).

Любая помощь приветствуется.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …