Warning: file_put_contents(/www/wwwroot/nmbt.106988770/cache/modrinth_versions_4qS27kGx.json): Failed to open stream: Permission denied in /www/wwwroot/nmbt.106988770/resource_detail.php on line 53
Custom-Mojang-Auth - 墨喵 Minecraft 资源
Custom-Mojang-Auth 图标

Custom-Mojang-Auth

作者:rebot | 分类:模组

价格:0 墨喵币 下载量:0 点赞:0 版本 1.0.0
本资源为搬运资源,原资源地址: https://modrinth.com/mod/custom-mojang-auth
资源信息

Minecraft 版本: 1.16 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.17 1.17.1 1.18 1.18.1 1.18.2 1.19 1.19.1 1.19.2 1.19.3 1.19.4 1.20 1.20.1 1.20.2

平台: fabric

标签: library management utility

资源介绍

custom-mojang-auth

A small library that allows your mod to automatically sign in to your custom server using the players mojang account.
Works for any minecraft version.
This mod allows a server to reliably identify a player and helps enforcing bans and prevents identity theft.
MCSR Ranked uses this library.

Usage

Client

In your mod initialize the Authenticator:

String accessToken;
UUID uuid;
java.net.Proxy proxy;
String messagePrefix //optional
ClientAuth.initialize(accessToken, uuid, proxy, messagePrefix);

The way accessToken, uuid and proxy are obtained depends on the Minecraft Version.
Obtaining the uuid of the player is pretty trivial, it can usually be found this way:

UUID uuid = net.minecraft.client.MinecraftClient.getInstance().getSession().getProfile().getId(); //1.16.1

or

UUID uuid = net.minecraft.client.MinecraftClient.getInstance().getSession().getUuidOrNull(); //1.20.2

Obtaining the accessToken is relatively easy as well:

String accessToken= net.minecraft.client.MinecraftClient.getInstance().getSession().getAccessToken();

Obtaining the proxy can be a bit more difficult.
In every version that I know of it is initialized in net.minecraft.client.mainmMian.main(String args[]). Just follow the Proxy object from here,
usually it's given to the net.minecraft.client.MinecraftClient constructor, and find a place where you can easily obtain it either via a method call, reflection, a mixin etc
In 1.20.2 the proxy can be obtained this way:

Field field =net.minecraft.client.MinecraftClient.class.getField("authenticationService");
field.setAccessible(true);
java.net.Proxy proxy =((com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService)field.get(net.minecraft.client.MinecraftClient.getInstance())).getProxy();

In 1.16.1 the proxy can be obtained this way:

java.net.Proxy proxy = ((com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService)net.minecraft.client.MinecraftClient.getInstance().getSessionService()).getAuthenticationService().getProxy();

If you need help locating any of the fields for your version, feel free to dm me on discord: void_x_walker

Server

Install the library:

npm install custom-mojang-auth  

use the following function to verify that a payload has been signed by the client.

function isValid(uuid, randomLong, data, date, publicKeyString, signatureBytes, payload)

where payload is an array.

Privacy

The client simply signs messages using its private key, which can then be send to a server. No login information, or other compromising information ever leaves the client's machine.

下载与版本
评论(0)
请 登录 后发表评论。

暂无评论,抢个沙发吧~

举报此资源

请登录后举报

赞助作者

请 登录 后赞助作者。

🔥 相关推荐
Blackjack

价格:0 墨喵币
下载量:0

查看详情
soulsave

价格:0 墨喵币
下载量:0

查看详情
Mining Dimension

价格:0 墨喵币
下载量:0

查看详情
MythicMons

价格:0 墨喵币
下载量:0

查看详情