From 609060e1d5873fbb0939cc82f560ebc86285ad8a Mon Sep 17 00:00:00 2001 From: MeysamMoghaddam <65253484+MeysamMoghaddam@users.noreply.github.com> Date: Sun, 12 Oct 2025 21:49:27 +0330 Subject: [PATCH] Update ConfigureServices.cs --- src/FrontOffice.Main/ConfigureServices.cs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/FrontOffice.Main/ConfigureServices.cs b/src/FrontOffice.Main/ConfigureServices.cs index 9f07e21..84b59d8 100644 --- a/src/FrontOffice.Main/ConfigureServices.cs +++ b/src/FrontOffice.Main/ConfigureServices.cs @@ -38,21 +38,21 @@ public static class ConfigureServices var serviceProvider = services.BuildServiceProvider(); var channel = CreateAuthenticatedChannel(baseUrl, httpClient, serviceProvider); - services.AddSingleton(sp => new PackageContract.PackageContractClient(channel)); - services.AddSingleton(sp => new UserContract.UserContractClient(channel)); - services.AddSingleton(sp => new UserAddressContract.UserAddressContractClient(channel)); - services.AddSingleton(sp => new UserOrderContract.UserOrderContractClient(channel)); + services.AddScoped(sp => new PackageContract.PackageContractClient(channel)); + services.AddScoped(sp => new UserContract.UserContractClient(channel)); + services.AddScoped(sp => new UserAddressContract.UserAddressContractClient(channel)); + services.AddScoped(sp => new UserOrderContract.UserOrderContractClient(channel)); return services; } private static GrpcChannel CreateAuthenticatedChannel(string address, HttpClient httpClient, IServiceProvider serviceProvider) { + var localStorage = serviceProvider.GetRequiredService(); + var credentials = CallCredentials.FromInterceptor(async (context, metadata) => { - // Get token from local storage if available - var localStorage = serviceProvider.GetService(typeof(ILocalStorageService)) as ILocalStorageService; - if (localStorage != null) + try { var token = await localStorage.GetItemAsync("auth:token"); if (!string.IsNullOrWhiteSpace(token)) @@ -60,6 +60,10 @@ public static class ConfigureServices metadata.Add("Authorization", $"Bearer {token}"); } } + catch (Exception) + { + // Ignore errors during token retrieval + } }); // SslCredentials is used here because this channel is using TLS.