将自己的登录机制与 Xbox Live 集成

Integrating own log-in mechanism with Xbox Live

我们正在将我们的 Unity3D 游戏移植到 Xbox One Creators 程序,我们正在考虑我们应该如何将我们自己的登录系统与 Xbox Live 集成。

我们目前(在独立 PC 版本中)使用我们自己的书面登录机制和由专有服务器应用程序支持的帐户管理系统。注册是强制性的,因为这是一个多人游戏。注册时,步进用户需要在注册表中填写自己选择的昵称、邮箱地址和密码。 当然,在 Xbox One 上,我们希望避免此步骤并利用现有用户的 Xbox Live 帐户。

在 Xbox Live SDK 中有 XboxLiveUser 对象,我们在用户登录后获得该对象,我们将使用 XboxUserId 属性 作为一种在我们的系统中唯一识别用户的方式。但我们如何授权他呢?我们知道 XboxUserId 可以很容易地用于所有其他游戏甚至其他用户,我们需要一些秘密密码来进行身份验证。 有什么方法可以让每个 Xbox live 用户的每个应用程序获得唯一的哈希值吗?

我们看到 XboxLiveUser 有方法 GetTokenAndSignatureAsync 其中 returns GetTokenAndSignatureResult 对象其中包含 XboxUserHash 属性。将此字符串用作密码是否安全?

GetToken* 方法返回的XboxUserHash 属性 不能用作用户标识符。每次用户使用 Xbox Live 进行身份验证时,它都可能会更改。

截至 2017 年 11 月,Xbox Creators Program 游戏无法在非 XboxLive 服务上对 Xbox Live 用户进行身份验证。您能做的最好的事情是让您的游戏客户端验证用户是否可以通过 Xbox Live 进行身份验证,并获得与他们用于通过您的服务进行身份验证的相同的 XboxUserId。