Honor forwarded proto and scope cookie to base path to prevent new player cookies
This commit is contained in:
@@ -10,13 +10,17 @@ public static class PlayerIdentityExtensions
|
|||||||
{
|
{
|
||||||
app.Use(async (ctx, next) =>
|
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
|
var cookieOptions = new CookieOptions
|
||||||
{
|
{
|
||||||
HttpOnly = true,
|
HttpOnly = true,
|
||||||
SameSite = SameSiteMode.Strict,
|
SameSite = SameSiteMode.Strict,
|
||||||
Secure = !app.ApplicationServices.GetRequiredService<IWebHostEnvironment>().IsDevelopment(),
|
Secure = isHttps,
|
||||||
IsEssential = true,
|
IsEssential = true,
|
||||||
Expires = DateTimeOffset.UtcNow.AddYears(1)
|
Expires = DateTimeOffset.UtcNow.AddYears(1),
|
||||||
|
Path = pathBase
|
||||||
};
|
};
|
||||||
|
|
||||||
Guid playerId;
|
Guid playerId;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using GameList.Data;
|
using GameList.Data;
|
||||||
using GameList.Endpoints;
|
using GameList.Endpoints;
|
||||||
using GameList.Infrastructure;
|
using GameList.Infrastructure;
|
||||||
|
using Microsoft.AspNetCore.HttpOverrides;
|
||||||
using Microsoft.Data.Sqlite;
|
using Microsoft.Data.Sqlite;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
@@ -38,6 +39,11 @@ builder.Services.ConfigureHttpJsonOptions(options =>
|
|||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
|
app.UseForwardedHeaders(new ForwardedHeadersOptions
|
||||||
|
{
|
||||||
|
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedHost
|
||||||
|
});
|
||||||
|
|
||||||
var basePath = builder.Configuration["BasePath"];
|
var basePath = builder.Configuration["BasePath"];
|
||||||
if (!string.IsNullOrWhiteSpace(basePath))
|
if (!string.IsNullOrWhiteSpace(basePath))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user