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); }
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"); }
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); }