public async Task <IActionResult> Login(LoginViewModel vm) { ReturnObject <string> result = new ReturnObject <string>(); ServerStatus status = new ServerStatus(); var userInfo = await _userService.GetUserInfo(vm); if (userInfo == null) { //ModelState.AddModelError("login_failure", "Invalid username or Invalid password !"); //return BadRequest(ModelState); result.Data = "Invalid username or Invalid password !"; result.Status = ServerStatus.LoginFail; return(new OkObjectResult(result)); } string refreshToken = Guid.NewGuid().ToString(); var claimsIdentity = _jwtFactory.GenerateClaimsIdentity(userInfo); _cache.Set(refreshToken, vm.LoginUserId, TimeSpan.FromMinutes(11)); var jwtToken = await _jwtFactory.GenerateEncodeToken(userInfo.UserId, refreshToken, claimsIdentity); result.Data = jwtToken; result.Status = ServerStatus.Success; return(new OkObjectResult(result)); }
public async Task <IActionResult> Login([FromBody] LoginViewModel viewModel) { var user = _userManager.FindByNameAsync(viewModel.Email); if (user == null) { return(BadRequest("Korsnik ne postoji.")); } var result = await _signInManager.PasswordSignInAsync(viewModel.Email, viewModel.Password, false, false); if (!result.Succeeded) { BadRequest("Pogresno korisnicko ime ili sifra"); } var token = _jwtFactory.GenerateEncodeToken(user.Result.Id); return(Ok(token)); }