/// <summary> /// Управляет авторизацией пользователя /// </summary> /// <param name="data"></param> /// <returns></returns> public static ReturnAuthData AuthClient(AuthData data) { data.username = data.username.ToLower(); var user = GetUserByName(data.username); if (user != null) { var result = new ReturnAuthData { success = false }; if (Base64Decode(user.Password) == data.password) { result.success = true; result.token = user.Token; result.role = user.Role; return(result); } else { ProceedActions.Log("Event", $"Неудачная попытка авторизоваться под аккаунтом {user.Username}"); result.message = "wrongpassword"; return(result); } } else { return(CreateUser(data.username, data.password)); } }
/// <summary> /// Управляет созданием аккаунта /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public static ReturnAuthData CreateUser(string username, string password) { var result = new ReturnAuthData { success = false }; using (var db = new Entities()) try { var user = new Account { Username = username, Password = Base64Encode(password), Role = 0, Token = "Token" + Base64Encode(username + "salt") }; db.Accounts.Add(user); db.SaveChanges(); int newIdentityValue = user.UserID; db.Players.Add(new Player { UserID = newIdentityValue, Playername = username }); db.Bases.Add(new Base { Basename = username + "Base", OwnerID = newIdentityValue, CoordX = 1, CoordY = 1, Level = 1, IsActive = true }); db.Resources.Add(new Resource { Instance = "bas" + newIdentityValue, Credits = 200, Energy = 200, Neutrino = 0.0 }); db.SaveChanges(); result.success = true; result.token = user.Token; result.role = user.Role; return(result); } catch (Exception ex) { ProceedActions.Log("Exception", $"Исключение: {ex.Message}, функция AccountManager.CreateUser"); result.message = ex.Message; return(result); } }