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