Интеграция собственного механизма входа в Xbox Live

Мы переносим нашу игру Unity3D в программу Xbox One Creators и думаем о том, как нам интегрировать нашу собственную систему входа в систему с Xbox Live.

В настоящее время мы (в автономной версии для ПК) используем собственный письменный механизм входа в систему и систему управления учетными записями, поддерживаемую проприетарным серверным приложением. Регистрация обязательна, так как это многопользовательская игра. При регистрации шагу пользователя необходимо заполнить регистрационную форму с выбранным псевдонимом, адресом электронной почты и паролем. На Xbox One, конечно, мы хотим избежать этого шага и использовать существующую учетную запись Xbox Live пользователя.

В Xbox Live SDK есть объект XboxLiveUser, который мы получаем после входа пользователя в систему, и мы будем использовать свойство XboxUserId как способ уникальной идентификации пользователя в нашей системе. Но как мы можем уполномочить его? Мы понимаем, что XboxUserId легко доступен для всех других игр и даже для других пользователей, и нам нужна секретная фраза-пароль, которую мы будем использовать для аутентификации. Есть ли способ получить уникальный хэш для каждого приложения для каждого пользователя Xbox live?

Мы видим, что у XboxLiveUser есть метод GetTokenAndSignatureAsync, который возвращает объект GetTokenAndSignatureResult, содержащий свойство XboxUserHash. Безопасно ли использовать эту строку в качестве парольной фразы?


person gumis    schedule 17.11.2017    source источник


Ответы (1)


Свойство XboxUserHash, возвращаемое методами GetToken*, нельзя использовать в качестве идентификатора пользователя. Скорее всего, он будет меняться каждый раз, когда пользователь проходит аутентификацию в Xbox Live.

По состоянию на ноябрь 2017 года игра в рамках программы Xbox Creators Program не может аутентифицировать пользователя Xbox Live в службе, отличной от XboxLive. Лучшее, что вы могли бы сделать, это заставить ваш игровой клиент проверить, может ли пользователь пройти аутентификацию в Xbox Live, и получить тот же XboxUserId, что и тот, который он использует для аутентификации в вашей службе.

person Ben Randall    schedule 22.11.2017
comment
Мы закончили генерировать случайный токен и хранить его в Xbox Live Title Storage. Затем мы используем XboxUserId и этот токен для автоматического входа в наши службы на любом устройстве, на котором пользователь зарегистрирован в службе Xbox Live. Вы считаете это правильным подходом? - person gumis; 28.11.2017
comment
Мне это кажется разумным решением! - person Ben Randall; 29.11.2017