Example #1
0
        public async Task <UsuarioAutenticadoViewModel> Handle(AutenticarUsuarioCommand request, CancellationToken cancellationToken)
        {
            var entity = await _context.Usuarios.FirstOrDefaultAsync(e => e.Email.ToLower().Equals(request.Login.ToLower()) || e.Login.ToLower().Equals(request.Login.ToLower()));

            if (entity == null)
            {
                throw _erroLogin;
            }

            if (PasswordHasher.VerifyHashedPassword(entity.Senha, request.Senha) != PasswordVerificationResult.Success)
            {
                throw _erroLogin;
            }

            var usuario = _mapper.Map <UsuarioAutenticadoViewModel>(entity);

            var token = _jwtService.CreateToken(usuario);

            await _refreshTokenBaseApplication.SaveRefreshToken(token.RefreshToken);

            usuario.Token        = token.AccessToken;
            usuario.RefreshToken = token.RefreshToken.Token;

            return(usuario);
        }
        public async Task <UsuarioAutenticadoViewModel> Handle(RefreshTokenUsuarioCommand request, CancellationToken cancellationToken)
        {
            var entity = await _context.RefreshTokens.FirstOrDefaultAsync(e => e.Token.Equals(request.Token));

            if (entity == null)
            {
                throw new BusinessException("Refres Token não encontrado");
            }

            var usuario = _mapper.Map <UsuarioAutenticadoViewModel>(entity.Usuario);

            var token = _jwtService.CreateToken(usuario);

            await _refreshTokenBaseApplication.SaveRefreshToken(token.RefreshToken);

            usuario.Token        = token.AccessToken;
            usuario.RefreshToken = token.RefreshToken.Token;

            return(usuario);
        }