From 9ecf1dfe129ca0a7f07388c4d0a968ca8f645e4d Mon Sep 17 00:00:00 2001 From: Tony98 Date: Sun, 28 Dec 2025 18:20:55 +0200 Subject: [PATCH] work done --- .../Controllers/Users/UsersController.cs | 10 +++++++++- .../Extensions/AuthExtensions.cs | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Streetcode/Services/Streetcode.Auth/Streetcode.Auth.Api/Controllers/Users/UsersController.cs b/Streetcode/Services/Streetcode.Auth/Streetcode.Auth.Api/Controllers/Users/UsersController.cs index 6002c4e8..2fd44613 100644 --- a/Streetcode/Services/Streetcode.Auth/Streetcode.Auth.Api/Controllers/Users/UsersController.cs +++ b/Streetcode/Services/Streetcode.Auth/Streetcode.Auth.Api/Controllers/Users/UsersController.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Streetcode.Auth.Api.Extensions; using Streetcode.Auth.Application.Dtos.Auth; using Streetcode.Auth.Application.Dtos.Users; using Streetcode.Auth.Application.MediatR.Login; @@ -19,7 +20,14 @@ public async Task Register([FromBody] RegisterUserDto user) [HttpPost] public async Task Login([FromBody] LoginRequestDto request) { - return HandleResult(await Mediator.Send(new LoginCommand(request))); + var result = await Mediator.Send(new LoginCommand(request)); + + if (result.IsSuccess && result.Value != null) + { + HttpContext.AppendTokensToCookies(result.Value.AccessToken, result.Value.RefreshToken); + } + + return HandleResult(result); } [Authorize] diff --git a/Streetcode/Services/Streetcode.Auth/Streetcode.Auth.Api/Extensions/AuthExtensions.cs b/Streetcode/Services/Streetcode.Auth/Streetcode.Auth.Api/Extensions/AuthExtensions.cs index 33b447b0..70cd1ff7 100644 --- a/Streetcode/Services/Streetcode.Auth/Streetcode.Auth.Api/Extensions/AuthExtensions.cs +++ b/Streetcode/Services/Streetcode.Auth/Streetcode.Auth.Api/Extensions/AuthExtensions.cs @@ -48,6 +48,20 @@ public static IServiceCollection AddJwtAuthentication(this IServiceCollection se return services; } + + public static void AppendTokensToCookies(this HttpContext context, string accessToken, string refreshToken) + { + var cookieOptions = new CookieOptions + { + HttpOnly = true, + Secure = true, + SameSite = SameSiteMode.Strict, + Expires = DateTimeOffset.UtcNow.AddDays(7) + }; + + context.Response.Cookies.Append("accessToken", accessToken, cookieOptions); + context.Response.Cookies.Append("refreshToken", refreshToken, cookieOptions); + } public static IServiceCollection AddSwaggerWithJwt(this IServiceCollection services) {