public async Task <IActionResult> Login(Users model) { if (ModelState.IsValid) { SHA512Managed sha = new SHA512Managed(); string hash = System.Text.Encoding.UTF8.GetString(sha.ComputeHash(System.Text.Encoding.UTF8.GetBytes(model.Password))); Users user = AppDbContext.db.Users.FirstOrDefault(u => u.Email == model.Email && u.Password == hash); if (user != null) { byte pass = 0; Athletes a = AppDbContext.db.Athletes.FirstOrDefault(u => u.Id == user); Trainers t = AppDbContext.db.Trainers.FirstOrDefault(u => u.User == user); RDSUWorkers r = AppDbContext.db.RDSUWorkers.FirstOrDefault(u => u.User == user); if (a != null && a.Status >= 0) { pass &= 0b00000001; } if (t != null && t.Status) { pass &= 0b00000010; } if (r != null && r.Status) { pass &= 0b00000100; } return(Ok(new { token = GenerateJWT(user, pass) })); } ModelState.AddModelError("", "Некорректные логин и(или) пароль"); // : проверка логина и пароля отдельно } return(UnprocessableEntity()); }
public async Task <IActionResult> Register(string Email) { if (ModelState.IsValid) { Users user = AppDbContext.db.Users.FirstOrDefault(u => u.Email == Email); string password = ""; if (user == null) { Random random = new Random(); int count = random.Next(4, 10); for (int i = 0; i < count; i++) { password += (char)random.Next(30, 100); } SHA512Managed sha = new SHA512Managed(); string hash = Encoding.UTF8.GetString(sha.ComputeHash(Encoding.UTF8.GetBytes(password))); user = new Users { Email = Email, Status = true, Password = hash }; AppDbContext.db.Users.Add(user); } RDSUWorkers worker = AppDbContext.db.RDSUWorkers.FirstOrDefault(u => u.User == user); if (worker != null) { AppDbContext.db.RDSUWorkers.Add(new RDSUWorkers { Status = true, User = user }); UsersController.PasswordMessage(Email, password); await AppDbContext.db.SaveChangesAsync(); return(Ok()); } else { return(BadRequest()); } } return(UnprocessableEntity()); }