Explorar o código

修复第三方登录报错

qinchaoyue hai 4 meses
pai
achega
ec02757caa

+ 3 - 0
src/Hotline.Application.Tests/Mock/ThirdTestService.cs

@@ -1,4 +1,5 @@
 using Hotline.Share.Dtos.Snapshot;
+using Hotline.Share.Tools;
 using Hotline.Users;
 using XF.Domain.Dependency;
 
@@ -15,6 +16,8 @@ public class ThirdTestService : IThirdIdentiyService, IScopeDependency
 
     public async Task<ThirdTokenOutDto> GetTokenAsync(ThirdTokenDto dto)
     {
+        //var resultString = "{\"SessionKey\":\"letVB1m+8ZYsMjo8PxhwUw==\",\"OpenId\":\"oHBwj4_8hQG1Q00HyTO3d47RLuAA\"}";
+        //return resultString.FromJson<ThirdTokenOutDto>();
         return new ThirdTokenOutDto
         {
             SessionKey = "sessionKeyfjdklsafjdskla",

+ 1 - 1
src/Hotline.Application.Tests/TestBase.cs

@@ -130,7 +130,7 @@ public class TestBase
             new(AppClaimTypes.DepartmentAreaName, user.Organization?.AreaName ?? string.Empty),
             new(AppClaimTypes.DepartmentLevel, user.Organization?.Level.ToString() ?? string.Empty),
             new(AppClaimTypes.AreaId, user.OrgId?.GetHigherOrgId() ?? string.Empty),
-            new(AppClaimTypes.OpenId, thirdAccount.OpenId ?? string.Empty),
+            new(AppClaimTypes.OpenId, thirdAccount?.OpenId ?? string.Empty),
         ];
         ClaimsIdentity identity = new ClaimsIdentity(userClaims);
         var principal = new ClaimsPrincipal(identity);

+ 1 - 2
src/Hotline.Application/Identity/IdentityAppService.cs

@@ -325,7 +325,6 @@ public class IdentityAppService : IIdentityAppService, IScopeDependency
             thirdDto.Secret = _systemSettingCacheManager.WxOpenAppSecret;
         }
         var thirdToken = await _thirdIdentiyService.GetTokenAsync(thirdDto);
-        _systemLog.Add("第三方登录", thirdDto.ToJson(), thirdToken.ToJson(), status: 1);
         var phone = await _thirdIdentiyService.GetPhoneNumberAsync(thirdDto);
         var thirdAccount = await _thirdAccountRepository.GetByOpenIdAsync(thirdToken.OpenId);
 
@@ -344,7 +343,7 @@ public class IdentityAppService : IIdentityAppService, IScopeDependency
             else
             {
                 var citizen = await _citizenRepository.Queryable().Where(m => m.PhoneNumber == phone.PhoneNumber).FirstAsync();
-                thirdAccount.UserId = citizen.Id;
+                thirdAccount.UserId = citizen?.Id;
             }
             thirdAccount.Id = await _thirdAccountRepository.AddAsync(thirdAccount);
         }