Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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));
        }