Как проверить валидность авторизации мобильного приложения (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 авторизован ли пользователь и какие данные необходимы для этой проверки?
И еще, пользуясь случаем, хотелось бы узнать ваше мнение в общем о самой схеме и ее рациональности, может кто-то подскажет еще варианты?

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

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

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
от 40 000 до 60 000 ₽