Update ConfigureServices.cs

This commit is contained in:
MeysamMoghaddam
2025-10-12 21:49:27 +03:30
parent b99e8551e9
commit 609060e1d5

View File

@@ -38,21 +38,21 @@ public static class ConfigureServices
var serviceProvider = services.BuildServiceProvider(); var serviceProvider = services.BuildServiceProvider();
var channel = CreateAuthenticatedChannel(baseUrl, httpClient, serviceProvider); var channel = CreateAuthenticatedChannel(baseUrl, httpClient, serviceProvider);
services.AddSingleton(sp => new PackageContract.PackageContractClient(channel)); services.AddScoped(sp => new PackageContract.PackageContractClient(channel));
services.AddSingleton(sp => new UserContract.UserContractClient(channel)); services.AddScoped(sp => new UserContract.UserContractClient(channel));
services.AddSingleton(sp => new UserAddressContract.UserAddressContractClient(channel)); services.AddScoped(sp => new UserAddressContract.UserAddressContractClient(channel));
services.AddSingleton(sp => new UserOrderContract.UserOrderContractClient(channel)); services.AddScoped(sp => new UserOrderContract.UserOrderContractClient(channel));
return services; return services;
} }
private static GrpcChannel CreateAuthenticatedChannel(string address, HttpClient httpClient, IServiceProvider serviceProvider) private static GrpcChannel CreateAuthenticatedChannel(string address, HttpClient httpClient, IServiceProvider serviceProvider)
{ {
var localStorage = serviceProvider.GetRequiredService<ILocalStorageService>();
var credentials = CallCredentials.FromInterceptor(async (context, metadata) => var credentials = CallCredentials.FromInterceptor(async (context, metadata) =>
{ {
// Get token from local storage if available try
var localStorage = serviceProvider.GetService(typeof(ILocalStorageService)) as ILocalStorageService;
if (localStorage != null)
{ {
var token = await localStorage.GetItemAsync<string>("auth:token"); var token = await localStorage.GetItemAsync<string>("auth:token");
if (!string.IsNullOrWhiteSpace(token)) if (!string.IsNullOrWhiteSpace(token))
@@ -60,6 +60,10 @@ public static class ConfigureServices
metadata.Add("Authorization", $"Bearer {token}"); metadata.Add("Authorization", $"Bearer {token}");
} }
} }
catch (Exception)
{
// Ignore errors during token retrieval
}
}); });
// SslCredentials is used here because this channel is using TLS. // SslCredentials is used here because this channel is using TLS.