Прежде чем я углублюсь в детали реализации этого конкретного дизайна, мне нужен совет / подтверждение того, правильно ли я подхожу к нему. Я новичок в Android, продвинутый новичок в Python, GAE и OpenId.
Среда
- Приложение для Android
- Веб-службы, созданные на Python на Google App Engine
- Пользователь (пользователи) с учетной записью Google
Сценарий
Я хочу включить возможности входа в свое приложение Android без написания собственной системы аутентификации в GAE. В приложении пользователь должен иметь возможность играть в качестве гостя без возможности сохранения рекордов. Если пользователь хочет сохранить свои рекорды, он аутентифицируется в своей учетной записи Google на устройстве Android. В конце игры рекорды аутентифицированного пользователя будут сохранены (связаны с его учетной записью Google) через игровые веб-службы на Google App Engine. Пользователь также должен иметь возможность выйти из системы и передать устройство другу, который также может войти в систему, сыграть в игру и сохранить свои рекорды, связанные со своей учетной записью Google.
Дизайн
- В приложении для Android, используйте OpenId для аутентификации всякий раз, когда пользователь желает войти в систему (используя что-то вроде того, что Ник опубликовал здесь .
- Возьмите токен OpenId из возвращаемого файла cookie и свяжите его с текущим пользователь.
- Сделать вызов веб-службы к службам GAE, добавив токен в качестве cookie и указав высокий балл
- Веб-служба будет проверять, что токен действителен
- Веб-служба будет определять уникальные учетные записи Google идентификатор, связанный с токеном (не знаю, как это сделать, но предполагая, что должны быть средства для этого) и поиск этого уникального идентификатора в таблице перекрестных ссылок, чтобы найти идентификатор пользователя в игре (который был ранее создан во время настройки учетной записи)
- Сохраните рекорд, связанный с внутриигровым идентификатором.
- Разрешить выход, чтобы другой пользователь мог войти в игру со своей учетной записью Google и повторить описанный выше процесс
Спасибо за вашу помощь
задан Erds 23 August 2011 в 02:20
поделиться