diff --git a/src/BackOffice/Common/Configure/ConfigureService.cs b/src/BackOffice/Common/Configure/ConfigureService.cs index 288f049..a6684e6 100644 --- a/src/BackOffice/Common/Configure/ConfigureService.cs +++ b/src/BackOffice/Common/Configure/ConfigureService.cs @@ -132,27 +132,28 @@ public static class ConfigureServices var credentials = CallCredentials.FromInterceptor(async (context, metadata) => { var provider = serviceProvider.GetRequiredService(); - // var accessToken = await provider.RequestAccessToken(); - // accessToken.TryGetToken(out var token); var token = await provider.GetTokenAsync(); if (!string.IsNullOrEmpty(token)) { - // Console.WriteLine($"Authorization Bearer {token.Value}"); metadata.Add("Authorization", $"Bearer {token}"); } - await Task.CompletedTask; }); - // SslCredentials is used here because this channel is using TLS. - // CallCredentials can't be used with ChannelCredentials.Insecure on non-TLS channels. + // تشخیص HTTP یا HTTPS + var isHttps = address.StartsWith("https://", StringComparison.OrdinalIgnoreCase); + + var channelCredentials = isHttps + ? ChannelCredentials.Create(new SslCredentials(), credentials) + : ChannelCredentials.Create(ChannelCredentials.Insecure, credentials); + var channel = GrpcChannel.ForAddress(address, new GrpcChannelOptions { - UnsafeUseInsecureChannelCallCredentials = true, - Credentials = ChannelCredentials.Create(new SslCredentials(), credentials), + UnsafeUseInsecureChannelCallCredentials = !isHttps, // فقط برای HTTP + Credentials = channelCredentials, HttpClient = httpClient, - MaxReceiveMessageSize = 1000 * 1024 * 1024, // 1 GB - MaxSendMessageSize = 1000 * 1024 * 1024 // 1 GB + MaxReceiveMessageSize = 1000 * 1024 * 1024, + MaxSendMessageSize = 1000 * 1024 * 1024 }); return channel.Intercept(new ErrorHandlerInterceptor()); }