【问题标题】:Automatically getting Mojang bearer token自动获取 Mojang 不记名令牌
【发布时间】:2020-12-28 13:54:21
【问题描述】:

我正在编写一个程序,可以在您指定的任何时间更改您的 Mojang 用户名(即名称“tom”在 09:05:39 可用,因此您可以将程序设置为将您的名称更改为“tom”时间)。为此,您需要一个不记名令牌。我可以登录 minecraft.net 并使用 EditThisCookie 来访问它,但我希望能够让程序等到名称下降后的一分钟内自动收集代理和不记名令牌以用于名称变为的情况半夜可用,否则我只是懒惰。我不确定为什么我获取不记名令牌的功能不起作用。我引用了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 错误,但是当我手动获取令牌时程序可以工作。

【问题讨论】:

    标签: python api python-requests minecraft bearer-token


    【解决方案1】:

    我也遇到了同样的问题。然后,我意识到 Minecraft/Mojang 帐户存在安全问题。如果您的函数正在获取不记名令牌并且您的问题是在发布名称更改请求时您的访问被拒绝:

    首先确保您的格式正确: headers={'Authorization': f"Bearer {TOKEN}" 注意“Bearer”和{TOKEN}之间的空格

    2nd:出于某种原因,Mojang 需要您向他们的安全挑战端点发送 Get 请求。 您不必对返回的数据做任何事情.. 当您手动获取令牌时,我假设您的浏览器自动发送了此获取请求,这就是它起作用的原因。如果您使用代理,您可能需要发送带有安全问题答案的发布请求,请查看 API 链接以获取文档。

    例如:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-12
      • 2019-06-29
      • 2021-09-28
      • 2013-05-16
      • 1970-01-01
      • 2014-12-22
      • 2020-08-20
      • 2019-08-04
      相关资源
      最近更新 更多