public async Task <IActionResult> Login(UserforLoginDTO userForLoginDTO) { var userFromRepo = await _repo.Login(userForLoginDTO.Username.ToLower(), userForLoginDTO.Password); if (userFromRepo == null) { return(Unauthorized()); } var claims = new[] { new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()), new Claim(ClaimTypes.Name, userFromRepo.Username) }; 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); return(Ok(new { token = tokenHandler.WriteToken(token) })); }
public async Task <ActionResult> login(UserforLoginDTO userforLoginDTO) { var user = await _IRepositoryWrapper.Auth.Login(userforLoginDTO.UserName, userforLoginDTO.PassWord); if (user == null) { return(Unauthorized()); } var tokenString = GenerateJSONWebToken(user); return(Ok(new { token = tokenString })); }
public IDataResult <User> Login(UserforLoginDTO loginDto) { User userToCheck = _userService.GetByMail(loginDto.Email).Data; IResult result = UserExists(loginDto.Email); if (result.Success) { return(new ErrorDataResult <User>(Messages.UserNotExist, null)); } if (!HashingHelper.VerifyPassHash(loginDto.Pass, userToCheck.PassHash, userToCheck.PassSalt)) { return(new ErrorDataResult <User>(Messages.WrongPassword, null)); } return(new SuccessDataResult <User>(Messages.Success, userToCheck)); }
public IActionResult Login(UserforLoginDTO loginDto) { var userResult = _auth.Login(loginDto); if (!userResult.Success) { return(BadRequest(userResult)); } var tokenResult = _auth.CreateAccessToken(userResult.Data); if (tokenResult.Success) { return(Ok(tokenResult)); } return(BadRequest(tokenResult)); }
public async Task <IActionResult> Login(UserforLoginDTO UserforLoginDTO) { // var userFromRepo = await _repo.Login(UserforLoginDTO.Username.ToLower(), UserforLoginDTO.Password); // if (userFromRepo == null) // return Unauthorized(); // var user = _mapper.Map<UserForListDTO>(userFromRepo); // return Ok(new // { // token = GenerateJwtToken(userFromRepo), // user // }); var user = await _userManager.FindByNameAsync(UserforLoginDTO.Username); var result = await _signInManager.CheckPasswordSignInAsync(user, UserforLoginDTO.Password, false); if (result.Succeeded) { var appUser = _mapper.Map <UserForListDTO>(user); return(Ok(new { // FIXMEOS -- Check this again.. in the tutorial, initially await keywork wasn't used, but I got issue // so I used await. And later in tutorial, in the SPA website, they got issue because they didn't // '.Result' and they used it. But, I didn't get any error even though I didn't use '.Result'. // And when I used '.Result', still I don't find any issue. Not sure, what is going on here. token = await GenerateJwtToken(user), // token = GenerateJwtToken(user).Result, user = appUser })); } return(Unauthorized()); }