Beispiel #1
0
        public async Task <IActionResult> GetToken([FromBody] LoginBidingModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, false, lockoutOnFailure : false);

                if (result.Succeeded)
                {
                    var user = await _userManager.FindByEmailAsync(model.Email);

                    var roles = await _userManager.GetRolesAsync(user);

                    return(Json(_jwt.CreateToken(model.Email, roles)));
                }
            }

            return(Unauthorized());
        }
        public async Task <IActionResult> Post([FromBody] LoginView login)
        {
            var result = await userService.CheckLogin(login);

            if (result.Successed)
            {
                var token = await jwtSecurityTokenService.CreateToken(result.User);

                foreach (var k in CacheKeyBuilder.GetAllKeys(result.User.Id))
                {
                    cache.Remove(k);
                }
                return(Ok(new LoginResult {
                    User = result.User, Succeeded = true, MessageCode = result.MessageCode, Token = new JwtSecurityTokenHandler().WriteToken(token), Roles = (await userRole.GetRoleCodes(result.User)).ToArray()
                }));
            }
            else
            {
                return(BadRequest(new LoginResult {
                    Succeeded = false, MessageCode = result.MessageCode
                }));
            }
        }
Beispiel #3
0
        public async Task <CurrentUserDto> Handle(LoginCommand request, CancellationToken cancellationToken)
        {
            await _signInManager.SignOutAsync();

            await _httpContextAccessor.HttpContext.SignOutAsync();

            var user = await GetUserByUserNameOrEmail(request, cancellationToken);

            if (user.Active is false)
            {
                var error = _localizer["La cuenta no esta activa, por favor habla con un administrador"];
                _validationFailureService.AddAndRaiseException(Errors.NonFieldErrors, error);
            }

            var result = await _signInManager.PasswordSignInAsync(
                user.UserName,
                request.Password,
                request.RememberMe,
                false);

            if (!result.Succeeded)
            {
                InvalidUserNameOrPassword(request);
            }

            var roles = await _userManager.GetRolesAsync(user);

            var token = _jwtSecurityTokenService.CreateToken(user, roles);

            var loginCommandVm = _mapper.Map <CurrentUserDto>(user);

            loginCommandVm.Token = token;
            _logger.LogInformation($"Se ha identificado con éxito {request.UserName}");

            return(loginCommandVm);
        }