Honor forwarded proto and scope cookie to base path to prevent new player cookies

This commit is contained in:
2026-01-28 20:08:08 +01:00
parent 4509c0f8a8
commit e15dd02228
2 changed files with 12 additions and 2 deletions

View File

@@ -10,13 +10,17 @@ public static class PlayerIdentityExtensions
{
app.Use(async (ctx, next) =>
{
var pathBase = ctx.Request.PathBase.HasValue ? ctx.Request.PathBase.Value : "/";
var isHttps = string.Equals(ctx.Request.Scheme, "https", StringComparison.OrdinalIgnoreCase);
var cookieOptions = new CookieOptions
{
HttpOnly = true,
SameSite = SameSiteMode.Strict,
Secure = !app.ApplicationServices.GetRequiredService<IWebHostEnvironment>().IsDevelopment(),
Secure = isHttps,
IsEssential = true,
Expires = DateTimeOffset.UtcNow.AddYears(1)
Expires = DateTimeOffset.UtcNow.AddYears(1),
Path = pathBase
};
Guid playerId;

View File

@@ -1,6 +1,7 @@
using GameList.Data;
using GameList.Endpoints;
using GameList.Infrastructure;
using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using System.Text.Json.Serialization;
@@ -38,6 +39,11 @@ builder.Services.ConfigureHttpJsonOptions(options =>
var app = builder.Build();
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedHost
});
var basePath = builder.Configuration["BasePath"];
if (!string.IsNullOrWhiteSpace(basePath))
{