protected override void RefreshTokenAndCompleteCall(LootLockerServerRequest cacheServerRequest, Action <LootLockerResponse> OnServerResponse) { if (activeConfig != null && activeConfig.platform == LootLockerGenericConfig.platformType.Steam) { LootLockerSDKManager.DebugMessage("Token has expired, And token refresh not supported in Steam calls", true); LootLockerResponse res = new LootLockerResponse(); res.statusCode = 401; res.Error = "Token Expired"; res.hasError = true; OnServerResponse?.Invoke(res); return; } var sessionRequest = new LootLockerSessionRequest(activeConfig.deviceID); LootLockerAPIManager.Session(sessionRequest, (response) => { if (response.success) { Dictionary <string, string> headers = new Dictionary <string, string>(); headers.Add("x-session-token", activeConfig.token); cacheServerRequest.extraHeaders = headers; if (cacheServerRequest.retryCount < 4) { SendRequest(cacheServerRequest, OnServerResponse); cacheServerRequest.retryCount++; } else { LootLockerSDKManager.DebugMessage("Session refresh failed", true); LootLockerResponse res = new LootLockerResponse(); res.statusCode = 401; res.Error = "Token Expired"; res.hasError = true; OnServerResponse?.Invoke(res); } } else { LootLockerSDKManager.DebugMessage("Session refresh failed", true); LootLockerResponse res = new LootLockerResponse(); res.statusCode = 401; res.Error = "Token Expired"; res.hasError = true; OnServerResponse?.Invoke(res); } }); }
protected override void RefreshTokenAndCompleteCall(LootLockerServerRequest cacheServerRequest, Action <LootLockerResponse> OnServerResponse) { string platform = LootLockerSDKManager.GetCurrentPlatform(); if (platform == Platforms.Steam) { LootLockerSDKManager.DebugMessage("Token has expired and token refresh is not supported for Steam", true); LootLockerResponse res = new LootLockerResponse(); res.statusCode = 401; res.Error = "Token Expired"; res.hasError = true; OnServerResponse?.Invoke(res); return; } if (platform == Platforms.NintendoSwitch) { LootLockerSDKManager.DebugMessage("Token has expired and token refresh is not supported for Nintendo Switch", true); LootLockerResponse res = new LootLockerResponse(); res.statusCode = 401; res.Error = "Token Expired"; res.hasError = true; OnServerResponse?.Invoke(res); return; } if (platform == Platforms.Guest) { LootLockerSDKManager.StartGuestSession(response => { CompleteCall(cacheServerRequest, OnServerResponse, response); }); return; } else if (platform == Platforms.WhiteLabel) { LootLockerSDKManager.StartWhiteLabelSession(response => { CompleteCall(cacheServerRequest, OnServerResponse, response); }); return; } else { var sessionRequest = new LootLockerSessionRequest(LootLockerConfig.current.deviceID); LootLockerAPIManager.Session(sessionRequest, (response) => { CompleteCall(cacheServerRequest, OnServerResponse, response); }); } void CompleteCall(LootLockerServerRequest newcacheServerRequest, Action <LootLockerResponse> newOnServerResponse, LootLockerSessionResponse response) { if (response.success) { Dictionary <string, string> headers = new Dictionary <string, string>(); headers.Add("x-session-token", LootLockerConfig.current.token); newcacheServerRequest.extraHeaders = headers; if (newcacheServerRequest.retryCount < 4) { SendRequest(newcacheServerRequest, newOnServerResponse); newcacheServerRequest.retryCount++; } else { LootLockerSDKManager.DebugMessage("Session refresh failed", true); LootLockerResponse res = new LootLockerResponse(); res.statusCode = 401; res.Error = "Token Expired"; res.hasError = true; newOnServerResponse?.Invoke(res); } } else { LootLockerSDKManager.DebugMessage("Session refresh failed", true); LootLockerResponse res = new LootLockerResponse(); res.statusCode = 401; res.Error = "Token Expired"; res.hasError = true; newOnServerResponse?.Invoke(res); } } }