public async Task <IActionResult> UpdateUser(UserForUpdateDto user) { var userFromDb = await _userService.UpdateUserData(user); if (userFromDb != null) { var userToReturnDetails = new UserToReturnWithDetails { Id = userFromDb.Id, Name = userFromDb.Name, Surname = userFromDb.Surname, Email = userFromDb.Email, Street = userFromDb.Street, PostalCode = userFromDb.PostalCode, City = userFromDb.City, Country = userFromDb.Country, CountryId = userFromDb.CountryId, Phone = userFromDb.Phone, }; return(Ok(userToReturnDetails)); } return(BadRequest()); }
public async Task <IActionResult> Login(UserForLoginDto userForLogin) { var user = await _authService.Login(userForLogin.Email, userForLogin.Password); if (user == null) { return(BadRequest()); } var claims = new[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Name, user.Email) }; var secretKey = _config.GetSection("AppSettings:Token").Value; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), Expires = DateTime.Now.AddDays(1), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); var userToReturnDetails = new UserToReturnWithDetails { Id = user.Id, Name = user.Name, Surname = user.Surname, Email = user.Email, Street = user.Street, PostalCode = user.PostalCode, City = user.City, Country = user.Country, CountryId = user.CountryId, Phone = user.Phone, }; var userToReturn = new UserToReturnFromLogin { UserDetails = userToReturnDetails, Token = tokenHandler.WriteToken(token) }; return(Ok(userToReturn)); }