/// <summary> /// Signs in using the provided credentials /// </summary> /// <returns></returns> public async Task <TokenHolder> SignInWithUserPasswordAsync(SecureString login, SecureString password) { var loginHandler = new ResourceOwnerPasswordHandler( _httpClient, login, password); var tokens = await loginHandler.AuthenticateAsync(); _openIdRenewalHandler = new OpenIdRenewalHandler(_httpClient, tokens, loginHandler, _logger); _logger.LogInformation("Successfully signed in with user credentials"); return(tokens); }
public async Task OpenIdRenewalHandler_Should_Fire_Token_Updated_Event() { // Given // a client signed in with valid credentials var apiClient = new ApiClient(_httpClient, _app.GetLogger <ApiClient>()); var tokens = await apiClient.SignInWithUserPasswordAsync( TestUsers.DefaultSiteAdminName, TestUsers.DefaultSiteAdminPass); var authHandler = new ResourceOwnerPasswordHandler( _httpClient, TestUsers.DefaultSiteAdminName.ToSecureString(), TestUsers.DefaultSiteAdminPass.ToSecureString()); // with the OpenIdRenewalHandler var oidHandler = new OpenIdRenewalHandler( _httpClient, tokens, authHandler, _app.GetLogger <OpenIdRenewalHandler>()); // and an event handler hooked up to the event bool tokenUpdatedEventFired = false; void TokenUpdatedEventHandler(TokenHolder newTokens) { tokenUpdatedEventFired = true; } oidHandler.TokenUpdated += TokenUpdatedEventHandler; // When // the renewal handler updates the tokens, await oidHandler.RefereshAuthenticationAsync(); // Then // the event should have fired Assert.IsTrue(tokenUpdatedEventFired); }