async Task <HttpClient> InitHttpClient(HttpClient httpClient) { httpClient.DefaultRequestHeaders.Add("x-api-key", ApiKey); var token = await AuthApi.Authenticate(httpClient, BaseUrl, credentials); httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); return(httpClient); }
protected override async Task StartImplAsync(UpdateResult result, CancellationToken cancellationToken) { httpClient.DefaultRequestHeaders.Remove("x-api-key"); httpClient.DefaultRequestHeaders.Add("x-api-key", ApiKey); var token = await AuthApi.Authenticate(httpClient, ApiBaseUrl, new AuthApi.PasswordGrantTypeCredentials() { ClientId = ClientId, ClientSecret = ClientSecret, UserName = UserName, Password = Password, }); // TODO: missing cancellationToken as a parameter here httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var initResponse = await PostAsync("/workspace/v3/initialize-workspace", null, cancellationToken); bayeuxClient = new BayeuxClient(new HttpLongPollingTransportOptions() { HttpClient = httpClient, Uri = ApiBaseUrl + "/workspace/v3/notifications" }); bayeuxClient.EventReceived += (e, args) => { Debug.WriteLine($"Event received on channel {args.Channel} with data\n{args.Data}"); UpdateTree(result2 => result2.MessageToChildren = args); }; bayeuxClient.ConnectionStateChanged += (e, args) => Debug.WriteLine($"Bayeux connection state changed to {args.ConnectionState}"); await bayeuxClient.Start(cancellationToken); await bayeuxClient.Subscribe("/**", cancellationToken); }
// creates an http request with user credentials and attempts to authenticate the user public void LoginUserWithEmailAndPassword(string email, string password) { authRequest = new AuthReq(email, password); auth.Authenticate(authRequest).completed += AuthenticationCallback; }