Я занимаюсь разработкой безсерверного основного веб-приложения asp
при аутентификации cognito размер файла cookie очень велик и превышает ограничение в 10240 байт amazon
.net создает файлы cookie asp.net, и они очень большие
Я пытался использовать куки-файлы SessionStore, но AWS без сервера не поддерживает SessionStore, поэтому приложение сохраняет данные в куки-файлах при публикации веб-сайта
у кого-нибудь есть решение, как уменьшить размер в куки? или сохранить токены не так, как куки?
Спасибо
Спасибо
services.AddAuthentication (options =>
{
//options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
//options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
//options.DefaultSignOutScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
//options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
// if true - Javascript will not be able to read cookie.
options.Cookie.HttpOnly = false;
// required or else it will result in an endless-login
options.Cookie.SameSite = SameSiteMode.None;
options.Events.OnSigningIn = FilterGroupClaims;
options.SessionStore = new MemoryCacheTicketStore();
})
.AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options =>
{
options.ResponseType = authOptions.Value.ResponseType;
options.MetadataAddress = authOptions.Value.MetadataAddress;
options.ClientId = authOptions.Value.ClientId;
options.GetClaimsFromUserInfoEndpoint = true;
options.ClientSecret = authOptions.Value.ClientSecret;
options.SaveTokens = authOptions.Value.SaveTokens;
options.UseTokenLifetime = false;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = authOptions.Value.TokenValidationParameters.ValidateIssuer
};
options.Events = new OpenIdConnectEvents()
{
OnRedirectToIdentityProvider = ctx =>
{
if (!_currentEnvironment.IsEnvironment("Development"))
{
//Force scheme of redirect URI (THE IMPORTANT PART)
ctx.ProtocolMessage.RedirectUri = ctx.ProtocolMessage.RedirectUri.Replace("http://", "https://", StringComparison.OrdinalIgnoreCase);
}
bool isAjaxRequest = (ctx.Request.Headers != null && ctx.Request.Headers["X-Requested-With"] == "XMLHttpRequest");
if (isAjaxRequest)
{
ctx.Response.Headers.Remove("Set-Cookie");
//ctx.State = NotificationResultState.HandledResponse;
}
//ctx.HandleResponse();
return Task.FromResult(0);
},
OnRemoteFailure = context =>
{
context.Response.Redirect("/Prod");
context.HandleResponse();
return Task.CompletedTask;
},
OnRedirectToIdentityProviderForSignOut = (context) =>
{
var logoutUri = logOutUrl;
logoutUri += $"?client_id={clientId}&logout_uri={baseUrl}";
context.Response.Redirect(logoutUri);
CookieHelper.ClearCookies(context.Response);
context.HandleResponse();
return Task.CompletedTask;
}
};
});
Это результат cookie
https://i.imgur.com/iQb82GU.png