Я создал cookie на стороне клиента с токеном-носителем jwt.Если файл cookie имеет httpOnly = false, я могу получить к нему доступ с помощью Asp.Net Core следующим образом:
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider)
{
app.Use((context, next) =>
{
Console.WriteLine("Before checking cookie middleware");
string authenticationCookieName = "Authorization";
var cookie = context.Request.Cookies[authenticationCookieName];
if (cookie != null)
{
Console.WriteLine("GOING TO DESERIALIZE");
var token = JsonConvert.DeserializeObject<AccessToken>(cookie);
Console.WriteLine("Bearer "+token.token);
context.Request.Headers.Add("Authorization", "Bearer "+token.token);
}
Console.WriteLine("After checking cookie middleware");
// Call the next delegate/middleware in the pipeline
return next();
});
Но если для файла cookie httpOnly установлено значение true, Asp.Net Core будет действовать так, как если бы файл cookieявляется нулевым, и он не будет читать токен.Что я делаю не так?
Я создаю cookie в реакции с использованием универсального cookie следующим образом:
const cookies = new Cookies();
cookies.set("Authorization", data, {
path: "/",
httpOnly: false
});
РЕДАКТИРОВАТЬ: я зарегистрировал все Request.Cookies.Keys и httponlycookie не появляется ... есть идеи?
РЕДАКТИРОВАТЬ2: Найдена проблема.Вы не можете создавать файлы cookie httponly на стороне клиента.