public async Task <IActionResult> Register([FromBody] UserVM regUserVM) { regUserVM.Username = regUserVM.Username.ToLower(); var regService = _service.GetService <IRegisterService>(); //Check if is user exist; if (await regService.IsExist(regUserVM.Username)) { ModelState.AddModelError("Username", "Username already exist"); } //Validate Model State; if (!ModelState.IsValid) { return(BadRequest(ModelState)); //retruns model state error } var user = new ApplicationUser { UserName = regUserVM.Username, Email = regUserVM.Username }; var result = await _userManager.CreateAsync(user, regUserVM.Password); if (result.Succeeded) { await _signInManager.SignInAsync(user, false); regUserVM.IdentityId = user.Id; var newUser = await regService.Register(regUserVM); var tokenString = new JWTGenerateToken().GenerateJwtToken(regUserVM.Username, newUser.UserId, newUser, _configuration); return(Ok(new { token = tokenString, username = regUserVM.Username })); } return(BadRequest(result.Errors)); }
public async Task <IActionResult> Login([FromBody] AuthVM authVM) { var result = await _signInManager.PasswordSignInAsync(authVM.Username, authVM.Password, false, false); if (result.Succeeded) { var authService = _service.GetService <IAuthService>(); var auth = await authService.Login(authVM); if (auth == null) { return(Unauthorized()); } var user = _userManager.Users.SingleOrDefault(r => r.Email == authVM.Username); var tokenString = new JWTGenerateToken().GenerateJwtToken(auth.Username, auth.UserId, auth, _configuration); return(Ok(new { token = tokenString, username = authVM.Username })); } return(Unauthorized()); }