diff --git a/Femto.Api/Auth/CookieSettings.cs b/Femto.Api/Auth/CookieSettings.cs index 79f32a3..fedfd27 100644 --- a/Femto.Api/Auth/CookieSettings.cs +++ b/Femto.Api/Auth/CookieSettings.cs @@ -3,4 +3,5 @@ namespace Femto.Api.Auth; public class CookieSettings { public bool Secure { get; set; } + public string? Domain { get; set; } } \ No newline at end of file diff --git a/Femto.Api/Sessions/HttpContextSessionExtensions.cs b/Femto.Api/Sessions/HttpContextSessionExtensions.cs index b0a9b6e..713f7da 100644 --- a/Femto.Api/Sessions/HttpContextSessionExtensions.cs +++ b/Femto.Api/Sessions/HttpContextSessionExtensions.cs @@ -8,15 +8,12 @@ namespace Femto.Api.Sessions; internal static class HttpContextSessionExtensions { - public static void SetSession( - this HttpContext httpContext, - Session session, - UserInfo user - ) + public static void SetSession(this HttpContext httpContext, Session session, UserInfo user) { var cookieSettings = httpContext.RequestServices.GetService>(); var secure = cookieSettings?.Value.Secure ?? true; var sameSite = secure ? SameSiteMode.None : SameSiteMode.Unspecified; + var domain = cookieSettings?.Value.Domain; var expires = session.Expires; httpContext.Response.Cookies.Append( @@ -24,6 +21,8 @@ internal static class HttpContextSessionExtensions session.SessionId, new CookieOptions { + IsEssential = true, + Domain = domain, HttpOnly = true, Secure = secure, SameSite = sameSite, @@ -43,6 +42,8 @@ internal static class HttpContextSessionExtensions ), new CookieOptions { + Domain = domain, + IsEssential = true, Secure = secure, SameSite = sameSite, Expires = session.Expires,