From 0fe67181204a2b76b9ceac2267d9e19f17d02537 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Thu, 23 Dec 2021 14:15:42 +0300 Subject: [PATCH] added AnonymousUserProvider --- .../AnonymousUserProvider.cs | 8 +++++ .../EShopUserClaimsPrincipalFactory.cs | 32 ++++++++----------- 2 files changed, 21 insertions(+), 19 deletions(-) create mode 100644 apps/auth-server/src/EShopOnAbp.AuthServer/AnonymousUserProvider.cs diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/AnonymousUserProvider.cs b/apps/auth-server/src/EShopOnAbp.AuthServer/AnonymousUserProvider.cs new file mode 100644 index 00000000..ac31ad7e --- /dev/null +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/AnonymousUserProvider.cs @@ -0,0 +1,8 @@ +using Volo.Abp.DependencyInjection; + +namespace EShopOnAbp.AuthServer; + +public class AnonymousUserProvider : ISingletonDependency +{ + public string AnonymousUserId { get; set; } +} \ No newline at end of file diff --git a/apps/auth-server/src/EShopOnAbp.AuthServer/EShopUserClaimsPrincipalFactory.cs b/apps/auth-server/src/EShopOnAbp.AuthServer/EShopUserClaimsPrincipalFactory.cs index 8d6a5539..9c0d2393 100644 --- a/apps/auth-server/src/EShopOnAbp.AuthServer/EShopUserClaimsPrincipalFactory.cs +++ b/apps/auth-server/src/EShopOnAbp.AuthServer/EShopUserClaimsPrincipalFactory.cs @@ -20,6 +20,7 @@ public class EShopUserClaimsPrincipalFactory : AbpUserClaimsPrincipalFactory { private readonly IHttpContextAccessor _httpContextAccessor; private readonly ILogger _logger; + private readonly AnonymousUserProvider _anonymousUserProvider; protected HttpContext HttpContext => _httpContextAccessor.HttpContext; public EShopUserClaimsPrincipalFactory( @@ -28,7 +29,9 @@ public class EShopUserClaimsPrincipalFactory : AbpUserClaimsPrincipalFactory IOptions options, ICurrentPrincipalAccessor currentPrincipalAccessor, IAbpClaimsPrincipalFactory abpClaimsPrincipalFactory, - IHttpContextAccessor httpContextAccessor, ILogger logger) : base(userManager, + IHttpContextAccessor httpContextAccessor, + ILogger logger, + AnonymousUserProvider anonymousUserProvider) : base(userManager, roleManager, options, currentPrincipalAccessor, @@ -36,31 +39,22 @@ public class EShopUserClaimsPrincipalFactory : AbpUserClaimsPrincipalFactory { _httpContextAccessor = httpContextAccessor; _logger = logger; + _anonymousUserProvider = anonymousUserProvider; } public override async Task CreateAsync(IdentityUser user) { var principal = await base.CreateAsync(user); - // if (HttpContext.Request.Cookies.ContainsKey(EShopConstants.AnonymousUserClaimName)) - // { - HttpContext.Request.Cookies.TryGetValue(EShopConstants.AnonymousUserClaimName, out var anonymousUserId); - - principal.Identities.First() - .AddClaim(new Claim(EShopConstants.AnonymousUserClaimName, anonymousUserId)); - _logger.LogInformation( - $"Added {EShopConstants.AnonymousUserClaimName} claim of AnonymousUserId from cookies:{anonymousUserId}"); - // } - - // You can notice that cookie contains anonymous_id - foreach (var cookie in HttpContext.Request.Cookies.ToList()) + if (HttpContext.Request.Cookies.ContainsKey(EShopConstants.AnonymousUserClaimName)) { - _logger.LogInformation($"key:{cookie.Key} - value:{cookie.Value}"); - } - _logger.LogInformation($"===================="); - foreach (var claim in principal.Claims.ToList()) - { - _logger.LogInformation($"key:{claim.Type} - value:{claim.Value}"); + HttpContext.Request.Cookies.TryGetValue(EShopConstants.AnonymousUserClaimName, out var anonymousUserId); + _anonymousUserProvider.AnonymousUserId = anonymousUserId; } + + principal.Identities.First() + .AddClaim(new Claim(EShopConstants.AnonymousUserClaimName, _anonymousUserProvider.AnonymousUserId)); + _logger.LogInformation( + $"Added {EShopConstants.AnonymousUserClaimName} claim of AnonymousUserId from cookies:{_anonymousUserProvider.AnonymousUserId}"); return principal; }