diff --git a/src/Duende.AccessTokenManagement.OpenIdConnect/CircuitServicesAccessor.cs b/src/Duende.AccessTokenManagement.OpenIdConnect/CircuitServicesAccessor.cs index a078f2b..e544488 100644 --- a/src/Duende.AccessTokenManagement.OpenIdConnect/CircuitServicesAccessor.cs +++ b/src/Duende.AccessTokenManagement.OpenIdConnect/CircuitServicesAccessor.cs @@ -23,7 +23,7 @@ public class CircuitServicesAccessor internal IServiceProvider? Services { get => blazorServices.Value; - set => blazorServices.Value = value; + set => blazorServices.Value = value!; } } diff --git a/src/Duende.AccessTokenManagement.OpenIdConnect/OpenIdConnectTokenManagementServiceCollectionExtensions.cs b/src/Duende.AccessTokenManagement.OpenIdConnect/OpenIdConnectTokenManagementServiceCollectionExtensions.cs index 1d119fa..faf1013 100644 --- a/src/Duende.AccessTokenManagement.OpenIdConnect/OpenIdConnectTokenManagementServiceCollectionExtensions.cs +++ b/src/Duende.AccessTokenManagement.OpenIdConnect/OpenIdConnectTokenManagementServiceCollectionExtensions.cs @@ -50,10 +50,18 @@ public static IServiceCollection AddOpenIdConnectAccessTokenManagement(this ISer return services; } - public static IServiceCollection AddBlazorServerAccessTokenManagement(this IServiceCollection services) - where T : class, IUserTokenStore + /// + /// Adds implementations of services that enable access token management in + /// Blazor Server. + /// + /// An IUserTokenStore implementation. Blazor + /// Server requires an IUserTokenStore because the default token store + /// relies on cookies, which are not present when streaming updates over a + /// blazor circuit. + public static IServiceCollection AddBlazorServerAccessTokenManagement(this IServiceCollection services) + where TTokenStore : class, IUserTokenStore { - services.AddSingleton(); + services.AddSingleton(); services.AddScoped(); services.AddCircuitServicesAccessor(); services.AddHttpContextAccessor(); // For SSR