示例#1
0
        public async Task <ApiResponse> AuthenticateAsync(AuthenticateRequest request)
        {
            var user = await _userRepository.GetByEmailAsync(request.Email);

            if (user == null)
            {
                AddError("Usuário não encontrado");
                return(Response);
            }

            if (PasswordUtil.PasswordIsCorrect(user.Password.Split(".")[1], user.Password.Split(".")[2], request.Password))
            {
                var token         = JwtUtil.GenarateToken(user);
                var tokenResponse = new Infra.Data.ValueObjects.TokenResponse
                {
                    User       = user,
                    Token      = token.Token,
                    Expiration = token.Expiration
                };

                Response.Data = _mapper.Map <TokenResponse>(tokenResponse);
                return(Response);
            }

            AddError("Credências inválidas");
            return(Response);
        }