示例#1
0
        private async Task InitializeAsync()
        {
            if (_authorization != null)
            {
                return;
            }

            var url = await GetDiscoveryUrl();

            var discoveryResult = await GetAsync <DiscoveryDTO>(url);

            var body = new
            {
                grant_type    = "password",
                login         = _connectionData.CPF,
                password      = _connectionData.Password,
                client_id     = "other.conta",
                client_secret = "yQPeLzoHuJzlMMSAjC-LgNUJdUecx8XO"
            };

            _authorization = await PostJsonAsync <AuthorizationResultDTO>(discoveryResult.Login, body);

            if (_authorization == null)
            {
                throw new Exception("Não foi possível estabelecer conexão com o Nubank");
            }

            DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(_authorization.TokenType.Capitalize(), _authorization.AccessToken);
        }
示例#2
0
        public NubankApiRepository(NubankConnectionData connectionData) : base()
        {
            _connectionData = connectionData ?? throw new ArgumentNullException(nameof(connectionData));
            _authorization  = null;

            DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36");
            DefaultRequestHeaders.Referrer = new Uri("https://conta.nubank.com.br/");
            DefaultRequestHeaders.Add("Origin", "https://app.nubank.com.br");
        }
示例#3
0
        public async Task <AuthorizationResultDTO> LoginAsync(AuthorizationDTO model)
        {
            var authorizationResult = new AuthorizationResultDTO();


            var result = await _unitOfWork.SignInManager.PasswordSignInAsync(model.UserName, model.Password, false, false);

            authorizationResult.Succeded = result.Succeeded;
            if (result.Succeeded)
            {
                var appUser = await _unitOfWork.UserManager.FindByNameAsync(model.UserName);

                appUser.RefreshToken = appUser.RefreshToken ?? _tokenService.GenerateRefreshToken();

                authorizationResult.Token = await _tokenService.GenerateJwtToken(appUser.UserName, appUser.Id);

                authorizationResult.Token.RefreshToken = appUser.RefreshToken;

                await _unitOfWork.SaveAsync();
            }

            return(authorizationResult);
        }