public async Task <IActionResult> Login(userForLogin userForLoginDto)
        {
            var user = await _userManager.FindByEmailAsync(userForLoginDto.Email.ToLower());

            if (user != null)
            {
                if (!user.EmailConfirmed)
                {
                    return(BadRequest("ConfirmEmail"));
                }

                var result = await _signInManager.CheckPasswordSignInAsync(user, userForLoginDto.Password, true);

                if (result.Succeeded)
                {
                    var userToReturn = _mapper.Map <UsersForReturn> (user);

                    return(Ok(new {
                        token = GenerateJwtToken(user).Result,
                        user = userToReturn
                    }));
                }
                return(BadRequest("incorrectPassword"));
            }
            return(Unauthorized("noAccountFound"));
        }
Exemplo n.º 2
0
        public async Task<IActionResult> Login(userForLogin userForLoginDto){


               var userFromRepo= await _repo.Login(userForLoginDto.Username.ToLower(), userForLoginDto.Password );
       
           
            if(userFromRepo == null){
                 _logger.Error("user Unauthorized");
                return Unauthorized();
            }
            var claims = new[]{
                new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()),
                new Claim(ClaimTypes.NameIdentifier, userFromRepo.Username)
                
            };
         
              var key = new SymmetricSecurityKey(Encoding.UTF8
            .GetBytes(_config.GetSection("AppSettings:Token").Value));    
           // var key = new SymmetricSecurityKey(Encoding.UTF8
           // .GetBytes(_config.GetSection("AppSettings:Token").Value));

            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 tokentosession = tokenHandler.WriteToken(token);
            userFromRepo.token = tokentosession;
            var res = await _userrepo.SaveAll();
          // HttpContext.Session.GetString("User");
            //var user = _mapper.Map<UserForListDto>(userFromRepo);
           // HttpContext.Session.SetString("JWToken", tokentosession); 
           _logger.Information("user loged");  
            return Ok(new {
                token= tokenHandler.WriteToken(token),
                userFromRepo
            });
        
        }