рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░! Blazor WebAssemby рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрд▓реА рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИредрд╕рд╛рдордЧреНрд░реА
рд╕рдВрджрд░реНрдн
тЖТ рд╕реНрд░реЛрддтЖТ рдбреЛрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкрд░ рдЫрд╡рд┐рдпрд╛рдВрдЕрдкрдбреЗрдЯ
рдмреНрд▓реЗрдЬрд╝рд░ рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВdotnet new -i Microsoft.AspNetCore.Components.WebAssembly.Templates::3.2.0
HttpClient рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ <PackageReference Include="Microsoft.Extensions.Http" Version="3.1.3" />
<PackageReference Include="System.Net.Http.Json" Version="3.2.0" />
HttpClient рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЕрдкрдиреЗ рд╣реЗрдбрд░ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдСрдерд░рд╛рдЗрдЬрд╝реЗрд╢рди рдЯреЛрдХрди рдкрдХрдбрд╝ рд╕рдХреЗservices.AddHttpClient("BlazorEShop", client =>
client.BaseAddress = new Uri(cfg.ApiUri))
.AddHttpMessageHandler(sp =>
sp.GetRequiredService<AuthorizationMessageHandler>()
.ConfigureHandler(new[] { cfg.ApiUri },scopes: new[] { "api" }));
services.AddTransient(sp =>
sp.GetRequiredService<IHttpClientFactory>().CreateClient("BlazorEShop"));
рдЦреИрд░, рд▓реЙрдЧ рдХрд╛ рд╕реНрддрд░ рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдм рдЗрд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ appsettings.json рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ wwwroot рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред builder.Logging.SetMinimumLevel(LogLevel.Debug);
рд╡реНрд╣рд╛рдЯреНрд╕ рдиреНрдпреВ рдЗрди рдмреНрд▓реЗрдЬрд╝реЛрд░ рд╡реЗрдмрдЕрд╡реЗрд╢рди
рдЬреЛрдВрд╕ рдлрд╛рдЗрд▓реЛрдВ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред.Resx рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдгрдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЕрдиреБрд░реЛрдз рдкрд░ рд╣реЗрдбрд░ рдореЗрдВ jwt рдЯреЛрдХрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИредрдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ редрдЪрд┐рддреНрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ
рдЕрдм рддрдХ, рдХреЗрд╡рд▓ рд╕реНрд╡реИрдЧрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗредрд╣рдо рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдЕрдзрд┐рдХреГрдд рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдФрд░ рдирд┐рдЪрд▓реЗ рдмрд╛рдПрдВ рдХреЛрдиреЗ рдХреЛ рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЕрдзрд┐рдХреГрдд рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рдерд╛ред рд╣рдо
рдЙрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдЗрдореЗрдЬрдЖрдИрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛