Как проверить валидность авторизации мобильного приложения (Google Play Game Services) на стороне backend сервера?

Здравствуйте!

Я прошу прощения за формулировку вопроса, никак не мог придумать более короткое и емкое название. Я постараюсь компенсировать этот недостаток более развернутым описанием.

Суть моей задачи
Я занимаюсь разработкой мультиплеерной игры (мобильное приложение написанное на Unity5), и сейчас у меня остро стал вопрос о сохранении данных пользователей (данные об игровой деятельности). От использования стандартных средств, которые предлагает Google Play Game Services я сразу отказался, поскольку отсутствие доступа к данным пользователя не допустимо и в случае возникновения проблем в ходе миграции на новые версии клиента я никому ничем помочь не смогу. В качестве решения я твердо решил использовать свой сервер для хранения этих данных.

Моя идея реализации
Сервер решил писать на node.js, и учитывая то, что я новичок в проектировании и разработке backend приложений, брать на себя ответственность за обеспечение полного процесса авторизации (регистрация, процесс авторизации, восстановление паролей и прочие процессы обеспечивающие безопасность данных) я не хочу и стараюсь максимально избежать этого.
На стороне клиента у меня вопросов не возникло, поскольку я использую Google Play Game Services SDK, который позволяет авторизоваться приложению используя системный аккаунт устройства. А вот на стороне своего сервера я пока не очень ясно представляю, как мне (клиенту) его убедить в том, что я действительно "Вася Пупкин" и что я действительно прошел авторизацию у Google.

Схема работы
Схему авторизации на сервере я вижу в следующем виде:
- клиент авторизуется используя Google Play Game Services, получает данные (токены и прочую хрень);
- делает свои локальные дела;
- настает момент когда клиенту надо прочитать/записать данные;
- клиент формирует запрос к серверу, "подписывает" его данными полученными от Google (токены и прочую магическую хрень);
- сервер получает заброс и данные авторизации;
- сервер делает некоторые магические операции, и по токену, мылу и прочей магической инфе, получает подтверждение/опровержение авторизации у сервисов Google;
- выполняет дальнейшие действия по алгоритму (шлет в лес самозванца или записывает/отдает информацию);

Ну и собственно сам вопрос
Как мне проверить у Google авторизован ли пользователь и какие данные необходимы для этой проверки?
И еще, пользуясь случаем, хотелось бы узнать ваше мнение в общем о самой схеме и ее рациональности, может кто-то подскажет еще варианты?

Спасибо! Особенно тем, кто смог осилить всю эту кучу текста!
  • Вопрос задан
  • 841 просмотр
Решения вопроса 1
@Wol_fi
php, js, mysql, highload
Выношу ответ из комментариев =)
Если не ошибаюсь, авторизация Google Play Game Services базируется на гугловском же oauth. Посмотрите здесь https://developers.google.com/identity/protocols/O... пункт Validating the token.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы