自动获取Mojang承载令牌

2024-06-18 13:08:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个程序,可以在您指定的任何时间更改您的Mojang用户名(即,名称“tom”在09:05:39可用,因此您可以将该程序设置为在该时间将您的名称更改为“tom”)。要做到这一点,你需要一个持票人代币。我可以登录到MixFr.NET中并使用EddithToCuIE来访问它,但是我希望程序能够等到它在名字的一分钟内自动收集代理和承载令牌,以便在半夜的名字变得可用或者我只是懒惰的情况下。我不知道为什么我获取持票人代币的功能不起作用。我引用了this来编写这段代码

    def getAT():
        jsonForAT = json.dumps({"agent":{"name":"Minecraft","version":1},"username":email,"password":password,"clientToken":""})
        headersForAT = {'Content-Type': 'application/json'}
        requestForAT = requests.post('https://authserver.mojang.com/authenticate', data=jsonForAT, headers=headersForAT)
    
        pullATRequestData = requestForAT.json()
        AT = pullATRequestData["accessToken"]
        return AT

我真的很困惑,因为当我使用它时,我得到了一个401错误,但是当我手动获取令牌时,程序工作


Tags: 程序名称json时间password名字attom
1条回答
网友
1楼 · 发布于 2024-06-18 13:08:50

我也遇到了同样的问题。然后,我意识到Minecraft/Mojang账户存在安全问题。如果您的功能是获取承载令牌,而您的问题是在发布名称更改请求时您的访问被拒绝:

首先,确保正确设置格式: 标头={'Authorization':f“承载{TOKEN}” 注意“Bearer”和{TOKEN}

第二:出于某种原因,Mojang需要您向他们的security challenges端点发送Get请求。您不必对返回的数据执行任何操作。 当您手动获取令牌时,我假设您的浏览器会自动发送此get请求,这就是它工作的原因。如果您使用的是代理,您可能需要发送一个post请求以及安全问题答案,请查看API链接以获取文档

例如:

res = requests.get(
            "https://api.mojang.com/user/security/challenges",
            headers={"Authorization": f"Bearer {TOKEN}"},
        )

https://wiki.vg/Mojang_API 转到“安全问题-答案流程”下的底部

相关问题 更多 >