/// <summary> /// Method for a server to validate a client provided EntityToken. Only callable by the title entity. /// </summary> public async Task <PlayFabResult <ValidateEntityTokenResponse> > ValidateEntityTokenAsync(ValidateEntityTokenRequest request, object customData = null, Dictionary <string, string> extraHeaders = null) { var requestSettings = apiSettings ?? PlayFabSettings.staticSettings; var entityToken = request?.AuthenticationContext?.EntityToken ?? authenticationContext.EntityToken; if (entityToken == null) { throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call GetEntityToken before calling this method"); } var httpResult = await PlayFabHttp.DoPost("/Authentication/ValidateEntityToken", request, "X-EntityToken", entityToken, extraHeaders, requestSettings); if (httpResult is PlayFabError) { var error = (PlayFabError)httpResult; PlayFabSettings.GlobalErrorHandler?.Invoke(error); return(new PlayFabResult <ValidateEntityTokenResponse> { Error = error, CustomData = customData }); } var resultRawJson = (string)httpResult; var resultData = PluginManager.GetPlugin <ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject <PlayFabJsonSuccess <ValidateEntityTokenResponse> >(resultRawJson); var result = resultData.data; return(new PlayFabResult <ValidateEntityTokenResponse> { Result = result, CustomData = customData }); }