User:Lzs/Authentication(Chinese)

(Is being translated into Chinese)

在Minecraft 1.6 中引入了一种名为 Yggdrasil 的新身份验证方案，完全取代了旧版认证系统. Mojang的其他游戏《Scrolls》也使用这种认证方式. Mojang 表示 此身份验证系统应该被使用在每一个自定义登录上，但 绝不应从用户那里收集证书.

请求格式
所有请求是由以下服务器发往 Yggdrasil：

https://authserver.mojang.com

进一步说，他们预计将满足以下规则：


 * 是  请求
 * Have the  header set to
 * Contain a JSON-encoded dictionary as payload

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


 * 状态码
 * A JSON-encoded dictionary according to the specifications below

If however a request fails, the server will respond with:


 * An appropriate, non-200 HTTP status code
 * 一个 JSON-编码字典格式如下:

错误
这些都是一些可能遇到的错误:

身份验证
使用他的密码对用户进行身份验证.

端点
/authenticate

有效载荷
此  应该是一个随机生成的标识符并且对于每个请求必须是相同的. 在首次运行启动器时生成一个随机的(版本4)UUID 并保存它，在后续请求中重复使用它. 假如它丢失了，服务器将基于Java的 生成一个随机的令牌并应被客户端储存. 然而这也将使该用户的所有客户端先前获得的  失效.

响应
注意： 如果用户希望呆在他们的电脑上登录，强烈建议将接收到的  代替密码本身.

目前每个帐户只能拥有一个配置文件，不过在未来的计划中每个账户可以拥有多个配置文件. 如果用户没有附加Minecraft许可证的情况下试图登录到一个有效的Mojang账户，身份验证将会成功，但响应不会包含  字段，并且   数组将为空.

在某些情况下，观察到Mojang对遗留帐户的刷新尝试失败时返回一个. 目前还不清楚空响应的实际错误是什么并且非常罕见. 但是，实现上应该警惕响应的空输出.

这个端点是频率限制;
 * 多个  在很短的时间内对相同账户的请求 (在短时间内考虑 3 个请求)，即使有正确的密码， 最终将导致一个   响应. 这一错误在几秒钟后就会消失.

刷新
刷新一个有效的. 它可以用来让用户在游戏会话之间登录并且优先在文件中存储用户的密码 (查看 lastlogin).

端点
/refresh

有效载荷
注意： 所提供的  无效.

验证
检查  是否可以使用Minecraft服务器进行身份验证. Minecraft启动器(从版本1.6.13开始) 在启动时调用此端点，以验证其保存的令牌仍然可用，如果返回错误，则调用.

注意， 可能无法与Minecraft服务器进行身份验证，但是对于   来说还是不错的. 这主要发生在使用另一个客户端时(e.g. 在另一台电脑上玩Minecraft). 似乎只有最近获得的给定帐户的 才能被可靠地用于身份验证. (倒数第二的令牌似乎也仍然有效，但是不要依赖它).

在有或没有  的情况下  都可能被调用. 如果提供了 ，应该匹配一个用于获取. Minecraft启动器发送一个 到. (翻译水平不足，无法理解请阅读英文原文)

端点
/validate

响应
如果成功，则返回一个空的有效载荷 ， 否则将显示状态为 的JSON错误.

注销
无效的  使用一个帐户的用户名和密码

端点
/signout

响应
如果成功返回一个空的有效载荷.

无效
无效的  使用客户端/访问令牌.

端点
/invalidate

响应
如果成功返回一个空的有效载荷.

加入一个服务器
查看Protocol Encryption