提示:前端无需实现本部分内容。
该部分用于角色进入服务器时的验证。主要流程如下:
serverId),其可以被认为是随机的serverId 及令牌发送给 Yggdrasil 服务端(要求令牌有效)POST /yggdrasil/sessionserver/session/minecraft/join
记录服务端发送给客户端的 serverId,以备服务端检查。
请求:
{
"accessToken":"令牌的 accessToken",
"selectedProfile":"该令牌绑定的角色的 UUID(无符号)",
"serverId":"服务端发送给客户端的 serverId"
}
仅当 accessToken 有效,且 selectedProfile 与令牌所绑定的角色一致时,操作才成功。
服务端应记录以下信息:
serverId 的随机性,可以将其作为主键。若操作成功,服务端应返回 HTTP 状态 204 No Content。
GET /yggdrasil/sessionserver/session/minecraft/hasJoined?username={username}&serverId={serverId}&ip={ip}
检查客户端会话的有效性,即数据库中是否存在该 serverId 的记录,且信息正确。
请求:参数如下:
| 参数 | 值 |
|---|---|
| username | 角色的名称 |
| serverId | 服务端发送给客户端的 serverId |
| ip (可选) | Minecraft 服务端获取到的客户端 IP,仅当 prevent-proxy-connections 选项开启时包含 |
username 需要与 serverId 所对应令牌所绑定的角色的名称相同。
响应格式:
{
// ... 令牌所绑定角色的完整信息(包含角色属性及数字签名,格式见 [角色信息的序列化](/AuthAPI-docs/yggdrasil/#角色信息的序列化))
}
若操作失败,服务端应返回 HTTP 状态 204 No Content。
该部分用于角色信息的查询。
GET /yggdrasil/sessionserver/session/minecraft/profile/{uuid}?unsigned={unsigned}
查询指定角色的完整信息(包含角色属性)。
请求:参数如下:
请求参数:
| 参数 | 值 |
|---|---|
| uuid | 角色的 UUID(无符号) |
| unsigned (可选) | true 或 false。是否在响应中不包含数字签名,默认为 true |
响应格式:
{
// ... 角色信息(包含角色属性。若 unsigned 为 false,还需要包含数字签名。格式见 [角色信息的序列化](/AuthAPI-docs/yggdrasil/#角色信息的序列化))
}
若角色不存在,服务端应返回 HTTP 状态 204 No Content。