private void ProcessSignupRequest(UnauthorizedMessage signupMessage) { var signupData = GetData <SignupRequest>(signupMessage); if (signupData == null) { return; } var reason = 0; if (string.IsNullOrEmpty(signupData.Username) || string.IsNullOrEmpty(signupData.Password)) { reason = 1001; } if (signupData.Username.Length <= 3) { reason = 1002; } if (_userRepository.GetPlayerByName(signupData.Username) != null) { reason = 1003; } if (reason > 0) { _loginSender.SignupFail(signupMessage.Connection, reason); return; } var name = signupData.Username; var hash = Pbkdf2.HashPassword(signupData.Password); var token = _tokenService.GenerateUniqueToken(); _userRepository.CreateNewPlayer(name, hash, token); var player = _userRepository.GetPlayerByToken(token); SendPlayerInformation(player, signupMessage.Connection, token); }
private void ProcessLoginRequest(UnauthorizedMessage loginMessage) { var loginData = GetData <LoginRequest>(loginMessage); if (loginData == null) { return; } Player player; string token; if (!string.IsNullOrEmpty(loginData.Token)) { player = _userRepository.GetPlayerByToken(loginData.Token); if (player == null) { _loginSender.Fail(loginMessage.Connection, 4002); return; } token = loginData.Token; } else { player = _userRepository.GetPlayerByLogin(loginData.Username, loginData.Password); if (player == null) { _loginSender.Fail(loginMessage.Connection, 4001); return; } token = _tokenService.GenerateUniqueToken(); _tokenRepository.SetPlayerToken(player, token); } SendPlayerInformation(player, loginMessage.Connection, token); }