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