internal static async Task <string> AuthenticateUserAsync(HttpRequestMessage httpReq, TraceWriter log) { httpReq.Headers.TryGetValues("SessionTicket", out IEnumerable <string> headers); string session = headers?.FirstOrDefault(); if (string.IsNullOrEmpty(session)) { return(null); } AuthenticateSessionTicketRequest req = new AuthenticateSessionTicketRequest { SessionTicket = session }; try { var resp = await PlayFabServerAPI.AuthenticateSessionTicketAsync(req); return(resp.Result.UserInfo.PlayFabId); } catch (Exception e) { log.Error($"Error authenticating session {session} --> {e}"); return(null); } }
protected override void validateSession(string sessionID, Action <PlayerAuthenticationModel> successHandler, Action failureHandler) { AuthenticateSessionTicketRequest request = new AuthenticateSessionTicketRequest(); request.SessionTicket = sessionID; PlayFabServerAPI.AuthenticateSessionTicketAsync(request).ContinueWith(t => { if (t.Result.Error != null) { failureHandler(); } else { PlayerAuthenticationModel playerAuthModel = new PlayerAuthenticationModel(sessionID, t.Result.Result.UserInfo.PlayFabId, t.Result.Result.UserInfo.TitleInfo.DisplayName); successHandler(playerAuthModel); } }); }
public async override Task <string> ProcessRequest_Put(Player requestingPlayer, HttpListenerRequest request, string[] parameters, string requestBody) { RegisterPlayerBody deserializedBody = JsonConvert.DeserializeObject <RegisterPlayerBody>(requestBody); // Verify auth token AuthenticateSessionTicketRequest req = new AuthenticateSessionTicketRequest { SessionTicket = deserializedBody.playfab_session }; var task = PlayFab.PlayFabServerAPI.AuthenticateSessionTicketAsync(req); var resp = await task; if (resp.Error == null) { Player newPlayer = Program.g_PlayerManager.RegisterPlayer(deserializedBody.playfab_session, resp.Result.UserInfo.PlayFabId, resp.Result.UserInfo.CustomIdInfo.CustomId, deserializedBody.version); return(JsonConvert.SerializeObject(newPlayer)); } Console.WriteLine("RegisterPlayer failed as auth token is invalid"); return(String.Empty); }