Update ConfigureServices.cs
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user