Implement stream cookie deletion in logout and account deletion endpoints: add DeleteStreamCookie method to remove the stream cookie upon user logout and account deletion, enhancing security by preventing access to streams after token expiration.
This commit is contained in:
@@ -134,6 +134,7 @@ public static class AuthEndpoints
|
||||
await sender.Send(new LogoutCommand(rawToken), cancellationToken);
|
||||
|
||||
response.Cookies.Delete(RefreshCookieName, BuildCookieOptions(request));
|
||||
DeleteStreamCookie(request, response);
|
||||
return Results.NoContent();
|
||||
}
|
||||
|
||||
@@ -172,6 +173,7 @@ public static class AuthEndpoints
|
||||
{
|
||||
var result = await sender.Send(new DeleteMyAccountCommand(), cancellationToken);
|
||||
response.Cookies.Delete(RefreshCookieName, BuildCookieOptions(request));
|
||||
DeleteStreamCookie(request, response);
|
||||
return result.ToHttpResult();
|
||||
}
|
||||
|
||||
@@ -195,6 +197,20 @@ public static class AuthEndpoints
|
||||
SameSite = SameSiteMode.Strict,
|
||||
Path = "/api/auth",
|
||||
};
|
||||
|
||||
/// <summary>Гасит stream-cookie (tw_stream, Path=/api) — иначе после выхода эфир можно смотреть
|
||||
/// по прямой ссылке ещё до истечения токена.</summary>
|
||||
private static void DeleteStreamCookie(HttpRequest request, HttpResponse response) =>
|
||||
response.Cookies.Delete(
|
||||
"tw_stream",
|
||||
new CookieOptions
|
||||
{
|
||||
HttpOnly = true,
|
||||
Secure = request.IsHttps,
|
||||
SameSite = SameSiteMode.Strict,
|
||||
Path = "/api",
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public sealed record AuthResponseDto(
|
||||
|
||||
Reference in New Issue
Block a user