in Application/UI/Blazor/ImageRecognition/CommunicationClientFactory.cs [36:57]
public async Task<ICommunicationClient> CreateCommunicationClient(CancellationToken token)
{
var authState = await _authenticationStateProvider.GetAuthenticationStateAsync();
var user = authState.User;
if (!user.Identity.IsAuthenticated)
throw new Exception();
var userId = _cognitoUserManager.GetUserId(user);
if (string.IsNullOrEmpty(userId))
throw new Exception();
var cognitoUser = await _cognitoUserManager.FindByIdAsync(userId);
if (string.IsNullOrEmpty(cognitoUser?.SessionTokens.IdToken))
throw new Exception();
var cws = new ClientWebSocket();
cws.Options.SetRequestHeader("Authorization", cognitoUser.SessionTokens.IdToken);
await cws.ConnectAsync(new Uri(_appOptions.ImageRecognitionWebSocketAPI), token);
return new CommunicationClient(cws);
}