private void Validate(LoginRequestDataPacket packet) { Internet.Get("http://localhost:3000/", $"user/{packet.Username}", result => { UserData data = JsonConvert.DeserializeObject <UserData>(result); if (data != null) { bool exists = data.Status != (int)HttpStatusCode.NotFound; bool connected = false; bool validPassword = data.User.Verify(packet.Password); if (exists && validPassword && !connected) { Authenticate(ErrorsType.NoError, packet); _user = data.User; _user.Identifier = id; } else if (validPassword) { Authenticate(ErrorsType.PlayerAlreadyLoggedIn, packet); } else { Authenticate(ErrorsType.UnknownUsernameOrPassword, packet); } } }, error => Authenticate(ErrorsType.UnknownError, packet)); }
public void HandlePacket(DataPacket packet) { switch (packet.Pid()) { case LoginRequestDataPacket.NetworkId: LoginRequestDataPacket loginRequestDataPacket = (LoginRequestDataPacket)packet; Validate(loginRequestDataPacket); break; } }
public void Authenticate(LoginErrorsType type, LoginRequestDataPacket request) { if (type == LoginErrorsType.NoError) { server.Log($"[SESSION] [AUTHENTICATE STATUS: {type.ToString()}]."); } else { LoginErrorResponsePacket packet = new LoginErrorResponsePacket { Identifier = 0, Error = type }; SendPacket(packet); server.Log($"[SESSION] [AUTHENTICATE STATUS: {type.ToString()}]."); } }
private void Authenticate(ErrorsType type, LoginRequestDataPacket request) { if (type == ErrorsType.NoError) { Id = request.Identifier; LoginResponsePacket packet = new LoginResponsePacket(); SendPacket(packet); LogFactory.GetLog(server.Name).LogInfo($"[SESSION] [AUTHENTICATE STATUS: {type.ToString()}]."); } else { LoginErrorResponsePacket packet = new LoginErrorResponsePacket { Identifier = 0, Error = type }; SendPacket(packet); LogFactory.GetLog(server.Name).LogInfo($"[SESSION] [AUTHENTICATE STATUS: {type.ToString()}]."); } }
public void Validate(LoginRequestDataPacket packet) { Random random = new Random(); int connected = 1; if (TestUser.exists && TestUser.username == packet.Username && TestUser.password == packet.Password && connected == 0) { Authenticate(LoginErrorsType.NoError, packet); } else if (TestUser.exists && TestUser.username == packet.Username && TestUser.password == packet.Password) { Authenticate(LoginErrorsType.PlayerAlreadyLoggedIn, packet); } else { Authenticate(LoginErrorsType.UnknownUsernameOrPassword, packet); } }
protected override void HandlePacket(DataPacket packet) { switch (packet.Pid()) { case LoginRequestDataPacket.NetworkId: LoginRequestDataPacket loginRequestDataPacket = (LoginRequestDataPacket)packet; Validate(loginRequestDataPacket); break; case LoginExitRequestPacket.NetworkId: SendPacket(packet); break; case LoginToGameServerRequestStep1Packet.NetworkId: LoginToGameServerRequestStep1Packet response = (LoginToGameServerRequestStep1Packet)packet; response.User = _user; SendPacket(response); break; case CreateAccountPacket.NetworkId: if (User.IsFirstTimeJoined()) { CreateAccountPacket createAccountPacket = (CreateAccountPacket)packet; if (createAccountPacket.Confirmed) { Internet.Get("http://localhost:3000/", $"user/nickname/change/{User.Id}/{createAccountPacket.Nickname}", result => { VerifyResult data = JsonConvert.DeserializeObject <VerifyResult>(result); if (data == null || !data.Result) { SendPacket(new LoginErrorResponsePacket { Error = ErrorsType.UnknownError }); } }, error => { SendPacket(new LoginErrorResponsePacket { Error = ErrorsType.CouldNotConnectToTheServer }); }); } SendPacket(createAccountPacket); } break; case CheckNameExistencePacket.NetworkId: CheckNameExistencePacket p = (CheckNameExistencePacket)packet; Internet.Get("http://localhost:3000/", $"user/nickname/exists/{p.Nickname}", result => { VerifyResult data = JsonConvert.DeserializeObject <VerifyResult>(result); if (data != null) { SendPacket(p); } else { SendPacket(new LoginErrorResponsePacket { Error = ErrorsType.CouldNotConnectToTheServer }); } }, error => { SendPacket(new LoginErrorResponsePacket { Error = ErrorsType.CouldNotConnectToTheServer }); }); break; } base.HandlePacket(packet); }