Существуют ли .NET MAUI-эквиваленты Blazor WASM SetBrowserRequestCredentials?
У меня есть существующее приложение Blazor Webassembly, над которым я работал над созданием мобильных версий для использования .NET MAUI. Текущее приложение использует токен JWT с системой токенов обновления для аутентификации. Токены обновления предоставляются API в виде файлов cookie только для HTTP.
В Blazor Webassembly есть метод расширения для
request.SetBrowserRequestCredentials(BrowserRequestCredentials.Include);
В .NET MAUI
Мне удалось реализовать обходной путь, который считывает заголовки из исходного вызова Set-Cookie из ответа API, а затем может возвращать это значение, добавляя заголовок Cookie, но это далеко не идеально.
Я опустил несколько подробностей о HTTP-запросах ниже, поскольку имя пользователя и пароль здесь не очень важны.
// Send login request and get cookies
HttpRequestMessage loginRequest = new HttpRequestMessage(HttpMethod.Post, "/API/Login");
HttpResponseMessage result1 = await Http.SendAsync(loginRequest);
result1.Headers.TryGetValues("Set-Cookie", out IEnumerable<string>? cookies);
// Send refresh token request
HttpRequestMessage refreshRequest = new HttpRequestMessage(HttpMethod.Post, "/API/RefreshToken");
refreshRequest.Headers.Add("Cookie", cookies.First());
HttpResponseMessage result2 = await Http.SendAsync(refreshRequest);
Многое из того, что здесь находится, требует проверки на наличие нулей и работы, которая в противном случае не потребовалась бы с выпуском Blazor WASM. Так что, если лучшего решения не существует сейчас, надеюсь, оно появится в будущем.