ZH:Authentication

Minecraft 1.6引入了一种全新的叫作Yggdrasil的认证方案，它彻底地取代了先前的认证系统. Mojang的其他游戏，Scrolls，同样也使用了该认证方法. Mojang曾经说过每个人都应使用此认证系统来进行自定义登录，但是永远不会从用户收集凭据.

请求格式
所有对Yggdrasil的请求都会发送到以下服务器：

https://authserver.mojang.com

此外，它们应满足以下规则：


 * 为 请求
 * 头设置为
 * 以包含JSON编码的字典作为负载

如果请求成功，服务器将响应：


 * 状态码
 * 根据以下规范使用JSON编码的字典

但如果请求失败，服务器会响应：


 * 适当的非200HTTP状态码
 * 拥有以下格式的JSON编码的字典：

错误
这些是可能遇到的一些错误：

认证
使用密码认证用户.

端点
/authenticate

负载
应该是一个随机生成的标识符而且必须每次请求都是相同的. 原版启动器会在第一次运行时生成一个随机的（v4）UUID并保存，在后续每次请求中复用它. 如果省略，那么服务器会生成一个基于Java的的随机令牌，它应该由客户端保存下来. 然而这也会使用户之前在所有客户端上获取的 失效.

响应
注意：如果用户希望能在他们的电脑上保存登录状态，那么强烈建议应该存储 而不是密码本身.

当前每个账号只拥有一个档案，一个账号拥有多个档案还在未来计划中. 如果用户尝试登入一个没有附加Minecraft许可的Mojang账号，那么认证将会成功，但是响应将不包含 字段，而且 数组也是空的.

有一些实例曾观察到Mojang对于旧版账号失败的刷新请求返回了一个平坦的. 还不清楚什么实际错误绑定了这个空响应，而且它极为罕见，但作为实现应该注意对该响应的空输出.

这个端点是严格速率限制的：短时间内同一账号的多次 请求（例如在几秒内3次请求），即使密码正确也会导致一个 响应. 该错误会在几秒后被清除.

刷新
刷新一个有效的. 它可以用于在游戏会话间保持登录状态，这优于在文件中保存用户的密码（见lastlogin）.

端点
/refresh

负载
注意：提供的 将失效.

验证
检查 是否可用于Minecraft服务器的认证. Minecraft启动器（自1.6.13版本起）会在启动器调用此端点来验证保存的令牌是否仍然可用，并会在返回错误时调用.

请注意 可能会不可用与Minecraft服务器的认证，而对于 来说足够可用. 这主要会发生在一个人使用了另一个客户端（如在别的PC上使用相同的帐号游玩了Minecraft）. 看起来只有给定帐号最新获得的 才能可靠地用于认证（第二新的令牌看起来也仍然有效，但请不要依赖它）.

可以在有或没有 时调用. 如果提供了 ，它应当与获取 的那个相匹配. Minecraft启动器会向 发送.

端点
/validate

响应
若成功返回空响应（ ），否则返回错误JSON和状态码.

登出
使用帐号的用户名和密码使 失效.

端点
/signout

响应
若成功返回一个空负载.

使失效
使用client/access令牌对使 失效.

端点
/invalidate

响应
若成功返回一个空负载.

加入服务器
见协议加密#认证