Интеграция собственного механизма входа с Xbox Live
Мы портируем нашу игру Unity3D на программу Xbox One Creators и думаем над тем, как нам интегрировать нашу собственную систему входа в систему с Xbox Live.
В настоящее время мы (в автономной версии для ПК) используем собственный письменный механизм входа в систему и систему управления учетными записями, поддерживаемую проприетарным серверным приложением. Регистрация обязательна, потому что это многопользовательская игра. При регистрации, пользователю шага необходимо заполнить регистрационную форму с выбранным ником, почтовым адресом и паролем. На Xbox One, конечно, мы хотим избежать этого шага и использовать существующую учетную запись пользователя Xbox Live.
В Xbox Live SDK есть объект XboxLiveUser, который мы получаем после входа пользователя в систему, и мы будем использовать свойство XboxUserId как способ уникальной идентификации пользователя в нашей системе. Но как мы можем разрешить его? Мы понимаем, что XboxUserId легко доступен для всех других игр и даже для других пользователей, и нам нужна какая-то секретная ключевая фраза, которую мы будем использовать для аутентификации. Есть ли способ получить уникальный хэш для каждого приложения на живого пользователя Xbox?
Мы видим, что XboxLiveUser имеет метод GetTokenAndSignatureAsync, который возвращает объект GetTokenAndSignatureResult, который содержит свойство XboxUserHash. Безопасно ли использовать эту строку в качестве пароля?
1 ответ
XboxUserHash
свойство, которое возвращается GetToken*
методы не могут быть использованы в качестве идентификатора пользователя. Это может измениться каждый раз, когда пользователь проходит аутентификацию в Xbox Live.
По состоянию на ноябрь 2017 года в программе Xbox Creators не было возможности аутентифицировать пользователя Xbox Live в службе, отличной от XboxLive. Лучшее, что вы могли бы сделать, - это заставить ваш игровой клиент проверить, что пользователь может проходить аутентификацию в Xbox Live, и получить тот же XboxUserId, что и тот, который они используют для аутентификации в вашей службе.