public async Task <ResultDTO> Register([FromBody] UserRegisterDTO model) { if (!ModelState.IsValid) { return(new ErrorResultDTO { StatusCode = 401, Message = "Error", Errors = CustomValidator.GetErrorByModel(ModelState) }); } var user = new User { UserName = model.Email, Email = model.Email, PhoneNumber = model.Phone }; var userInfo = new UserInfo { Address = model.Address, FullName = model.FullName, Id = user.Id }; var identityResult = _userManager.CreateAsync(user, model.Password).Result; if (!identityResult.Succeeded) { return new ErrorResultDTO { StatusCode = 500, Message = "Registration Error", Errors = CustomValidator.GetErrorByModel(ModelState) } } ; var result = await _userManager.AddToRoleAsync(user, "User"); _context.UserInfos.Add(userInfo); await _context.SaveChangesAsync(); return(new ResultDTO { StatusCode = 200, Message = "OK" }); }
public async Task <ResultDTO> Login([FromBody] UserLoginDTO model) { if (!ModelState.IsValid) { return(new ErrorResultDTO { StatusCode = 401, Message = "Login Error", Errors = CustomValidator.GetErrorByModel(ModelState) }); } // Перевірка на успіх логіну та паролю var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, false, false); if (!result.Succeeded) { return(new ErrorResultDTO { StatusCode = 402, Message = "Login failed", Errors = new System.Collections.Generic.List <string> { "Login or password error" } }); } else { var user = await _userManager.FindByEmailAsync(model.Email); // вхід await _signInManager.SignInAsync(user, false); return(new SuccessResultDTO { StatusCode = 200, Message = "Ok", Token = _jwtTokenService.CreateToken(user) }); } }