CrazyIter_Bin 4 months ago
parent
commit
81c6ebc03a

+ 8 - 4
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/Controllers/IndexController.cs

@@ -287,10 +287,12 @@ namespace IES.ExamServer.Controllers
                             randomcode = $"{random.Next(1000, 9999)}";
                             string? CenterUrl = _configuration.GetValue<string>("ExamServer:CenterUrl");
                             CenterUrl = CenterUrl.Equals("https://localhost:5001") ? "https://www.teammodel.cn" : CenterUrl;
-                            string content = $"{CenterUrl}/qrcodelogin?randomcode=login:ExamServer:{school?.id}:{randomcode}&m=%E6%89%AB%E7%A0%81%E7%99%BB%E5%BD%95&o=1";
+                            string content = $"{CenterUrl}/qrcodelogin?randomcode=Login:ExamServer:{school?.id}:{randomcode}&m=%E6%89%AB%E7%A0%81%E7%99%BB%E5%BD%95&o=1";
                             var str = QRCodeHelper.GenerateQRCode(content, 300, 300, QRCodeHelper.logo);
                             qrcode = $"data:image/png;base64,{str}";
-                            return Ok(new { code = 200, randomCode = randomcode, qrcode, type });
+                            int ttl = 60;
+                            _memoryCache.Set($"Login:ExamServer:{school?.id}:{randomcode}", randomcode, TimeSpan.FromSeconds(ttl));
+                            return Ok(new { ttl,code = 200, randomCode = randomcode, qrcode, type });
                         }
                     case bool when $"{type}".Equals("xqrcode"):
                         {
@@ -299,7 +301,7 @@ namespace IES.ExamServer.Controllers
                             randomcode = $"{random.Next(1000, 9999)}";
                             string? CenterUrl = _configuration.GetValue<string>("ExamServer:CenterUrl");
                             CenterUrl = CenterUrl.Equals("https://localhost:5001") ? "https://www.teammodel.cn" : CenterUrl;
-                            string content = $"{CenterUrl}/qrcodelogin?randomcode=login:ExamServer:{school?.id}:{randomcode}&m=%E6%89%AB%E7%A0%81%E7%99%BB%E5%BD%95&o=1";
+                            string content = $"{CenterUrl}/qrcodelogin?randomcode=Login:ExamServer:{school?.id}:{randomcode}&m=%E6%89%AB%E7%A0%81%E7%99%BB%E5%BD%95&o=1";
                             Bitmap qrCodeImage = QRCodeHelper.GetBitmap(content, 200, 200);
                             using (MemoryStream stream = new MemoryStream())
                             {
@@ -307,7 +309,9 @@ namespace IES.ExamServer.Controllers
                                 byte[] data = stream.ToArray();
                                 qrcode = $"data:image/png;base64,{Convert.ToBase64String(data)}";
                             }
-                            return Ok(new { code = 200, randomCode = randomcode, qrcode, type });
+                            int ttl = 60;
+                            _memoryCache.Set($"Login:ExamServer:{school?.id}:{randomcode}", randomcode, TimeSpan.FromSeconds(ttl));
+                            return Ok(new {ttl, code = 200, randomCode = randomcode, qrcode, type });
                         }
                     case bool when $"{type}".Equals("smspin"):
                         {

+ 1 - 0
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/IES.ExamServer.csproj

@@ -19,6 +19,7 @@
 	</PropertyGroup>-->
 	<ItemGroup>
 		<Folder Include="Logs\DataLogs\" />
+		<Folder Include="wwwroot\" />
 	</ItemGroup>
 	
 	<ItemGroup>

+ 2 - 2
TEAMModelOS/Controllers/System/CoreController.cs

@@ -437,12 +437,12 @@ namespace TEAMModelOS.Controllers
                 }
                 //await _dingDing.SendBotMsg(join.ToJsonString()+ dict.ToJsonString(), GroupNames.成都开发測試群組);
 
-                if (!string.IsNullOrWhiteSpace(join.id_token) && !string.IsNullOrWhiteSpace(join.randomcode) && join.randomcode.Contains("login:"))
+                if (!string.IsNullOrWhiteSpace(join.id_token) && !string.IsNullOrWhiteSpace(join.randomcode) && join.randomcode.StartsWith("Login:"))
                 {
                     var jwt = new JwtSecurityToken(join.id_token);
                     //await _dingDing.SendBotMsg(join.ToJsonString(), GroupNames.成都开发測試群組);
                     var id = jwt.Payload.Sub;
-                    await _azureRedis.GetRedisClient(8).StringSetAsync($"HiTA:Login:{join.randomcode.Replace("login:", "")}", id, expiry: new TimeSpan(0, 0, 30));
+                    await _azureRedis.GetRedisClient(8).StringSetAsync($"HiTA:{join.randomcode}", id, expiry: new TimeSpan(0, 0, 30));
                     return Ok(new { msg = "关闭弹窗以获取登录信息" ,code=200});
                 }
                 else { return Ok(new { code = 400, msg = $"参数错误{join.ToJsonString()}" }); }