Compare commits
No commits in common. "4946b7e5959f02cfdd5b0a7b539f7b51b8b17578" and "ca9e41e99eaa5dd047e9c24a72cff1cdfb7b357f" have entirely different histories.
4946b7e595
...
ca9e41e99e
@ -56,8 +56,6 @@ func (a *App) CheckPrerequisites() {
|
|||||||
a.Auth, err = TokenRefresh(*a, a.Auth)
|
a.Auth, err = TokenRefresh(*a, a.Auth)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
authenticated = true
|
authenticated = true
|
||||||
} else {
|
|
||||||
fmt.Printf("token reauth failed, requesting device code: %s\n", err)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if !authenticated {
|
if !authenticated {
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
wruntime "github.com/wailsapp/wails/v2/pkg/runtime"
|
wruntime "github.com/wailsapp/wails/v2/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
type LauncherAuth struct {
|
type LauncherAuth struct {
|
||||||
Id string
|
Id string
|
||||||
Name string
|
Name string
|
||||||
@ -149,15 +150,12 @@ func TokenRefresh(app App, auth authenticationResp) (authenticationResp, error)
|
|||||||
data, _ := io.ReadAll(resp.Body)
|
data, _ := io.ReadAll(resp.Body)
|
||||||
authResp := authenticationResp{}
|
authResp := authenticationResp{}
|
||||||
json.Unmarshal(data, &authResp)
|
json.Unmarshal(data, &authResp)
|
||||||
if authResp.Error != "" {
|
|
||||||
return authResp, fmt.Errorf("unable to request new token: %s", authResp.Error_description)
|
|
||||||
}
|
|
||||||
return authResp, nil
|
return authResp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func MicrosoftAuth(auth authenticationResp) (LauncherAuth, error) {
|
func MicrosoftAuth(auth authenticationResp) (LauncherAuth, error) {
|
||||||
//Xbox Live Auth
|
//Xbox Live Auth
|
||||||
req, _ := json.Marshal(xboxAuthRequest{Properties: xboxAuthProperties{AuthMethod: "RPS", SiteName: "user.auth.xboxlive.com", RpsTicket: "d=" + auth.Access_token}, RelyingParty: "http://auth.xboxlive.com", TokenType: "JWT"})
|
req, _ := json.Marshal(xboxAuthRequest{Properties: xboxAuthProperties{AuthMethod: "RPS", SiteName: "user.auth.xboxlive.com", RpsTicket: "d="+auth.Access_token}, RelyingParty: "http://auth.xboxlive.com", TokenType: "JWT"})
|
||||||
client := http.Client{}
|
client := http.Client{}
|
||||||
httpreq, _ := http.NewRequest("POST", "https://user.auth.xboxlive.com/user/authenticate", bytes.NewBuffer(req))
|
httpreq, _ := http.NewRequest("POST", "https://user.auth.xboxlive.com/user/authenticate", bytes.NewBuffer(req))
|
||||||
httpreq.Header.Add("x-xbl-contract-version", "1")
|
httpreq.Header.Add("x-xbl-contract-version", "1")
|
||||||
@ -171,7 +169,7 @@ func MicrosoftAuth(auth authenticationResp) (LauncherAuth, error) {
|
|||||||
if httpResp.StatusCode != 200 {
|
if httpResp.StatusCode != 200 {
|
||||||
return LauncherAuth{}, fmt.Errorf("unable to obtain xbox live token: %s\n", httpResp.Status)
|
return LauncherAuth{}, fmt.Errorf("unable to obtain xbox live token: %s\n", httpResp.Status)
|
||||||
}
|
}
|
||||||
d, _ := io.ReadAll(httpResp.Body)
|
d,_ := io.ReadAll(httpResp.Body)
|
||||||
xblAuth := xboxAuthResponse{}
|
xblAuth := xboxAuthResponse{}
|
||||||
json.Unmarshal(d, &xblAuth)
|
json.Unmarshal(d, &xblAuth)
|
||||||
xstsData, _ := json.Marshal(XSTSRequest{Properties: XSTSProperties{SandboxId: "RETAIL", UserTokens: []string{xblAuth.Token}}, RelyingParty: "rp://api.minecraftservices.com/", TokenType: "JWT"})
|
xstsData, _ := json.Marshal(XSTSRequest{Properties: XSTSProperties{SandboxId: "RETAIL", UserTokens: []string{xblAuth.Token}}, RelyingParty: "rp://api.minecraftservices.com/", TokenType: "JWT"})
|
||||||
@ -188,7 +186,7 @@ func MicrosoftAuth(auth authenticationResp) (LauncherAuth, error) {
|
|||||||
d, _ = io.ReadAll(httpResp.Body)
|
d, _ = io.ReadAll(httpResp.Body)
|
||||||
mcApi := xboxAuthResponse{}
|
mcApi := xboxAuthResponse{}
|
||||||
json.Unmarshal(d, &mcApi)
|
json.Unmarshal(d, &mcApi)
|
||||||
mcAuthData, _ := json.Marshal(McAuthRequest{Xtoken: "XBL 3.0 x=" + mcApi.DisplayClaims.Xui[0].Uhs + ";" + mcApi.Token, Platform: "PC_LAUNCHER"})
|
mcAuthData, _ := json.Marshal(McAuthRequest{Xtoken: "XBL 3.0 x=" + mcApi.DisplayClaims.Xui[0].Uhs+ ";" + mcApi.Token, Platform: "PC_LAUNCHER"})
|
||||||
httpReqMC, _ := http.NewRequest("POST", "https://api.minecraftservices.com/launcher/login", bytes.NewBuffer(mcAuthData))
|
httpReqMC, _ := http.NewRequest("POST", "https://api.minecraftservices.com/launcher/login", bytes.NewBuffer(mcAuthData))
|
||||||
httpReqMC.Header.Add("Content-Type", "application/json")
|
httpReqMC.Header.Add("Content-Type", "application/json")
|
||||||
httpReqMC.Header.Add("Accept", "application/json")
|
httpReqMC.Header.Add("Accept", "application/json")
|
||||||
|
Loading…
Reference in New Issue
Block a user