Я много гуглю, все учебники только реализуют серверную часть.
Я использую javascript Services в ядре .net для рендеринга Angular Application вместе с ядром .net webapi. Здесь моя стартовая конфигурация
app.UseStaticFiles();
app.UseSpaStaticFiles();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
loggerFactory.AddConsole(this.Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
//app.UseHttpsRedirection();
app.Use(async (context, next) =>
{
string path = context.Request.Path.Value;
if (path != null && !path.ToLower().Contains("/api"))
{
// XSRF-TOKEN used by angular in the $http if provided
var tokens = antiforgery.GetAndStoreTokens(context);
context.Response.Cookies.Append("X-XSRF-TOKEN",
tokens.RequestToken, new CookieOptions
{
HttpOnly = false,
Secure = true
}
);
}
await next();
});
app.UseMvc();
app.UseAuthentication();
app.UseSpa(spa =>
{
spa.Options.SourcePath = "Ui";
spa.UseSpaPrerendering(options =>
{
options.BootModulePath = $"{spa.Options.SourcePath}/dist/server/main.js";
options.BootModuleBuilder = env.IsDevelopment()
? new AngularCliBuilder(npmScript: "build:ssr")
: null;
});
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
Я также добавляю токен csrf в мой раздел ConfigureServices:
services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN");
Я хочу добавить токен csrf в раздел app.UseSpa для представления в приложении index.html по умолчанию. Если я ошибаюсь, пожалуйста, предложите мне лучшее решение для решения этой проблемы, содержащее угловой кодовый раздел.