簡體   English   中英

自動獲取 Mojang 不記名令牌

[英]Automatically getting Mojang bearer token

我正在編寫一個程序,它可以在您指定的任何時間更改您的 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 錯誤,但是當我手動獲取令牌時程序可以工作。

我也遇到了同樣的問題。 然后,我意識到 Minecraft/Mojang 帳戶存在安全問題。 如果您的函數正在獲取不記名令牌並且您的問題是在發布名稱更改請求時您的訪問被拒絕:

第一,確保你的格式正確: headers={'Authorization': f"Bearer {TOKEN}"注意 "Bearer" 和 {TOKEN} 之間的空格

第二:出於某種原因,Mojang 需要您向他們的安全挑戰端點發送 Get 請求。 您不必對返回的數據執行任何操作。當您手動獲取令牌時,我假設您的瀏覽器會自動發送此獲取請求,這就是它起作用的原因。 如果您使用代理,則可能需要發送包含安全問題答案的發布請求,請查看 API 鏈接以獲取文檔。

例如:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM