Browse Source

login 恢复 jwt

leiy 10 months ago
parent
commit
66e47263e9
1 changed files with 26 additions and 28 deletions
  1. 26 28
      OASystem/OASystem.Api/Controllers/AuthController.cs

+ 26 - 28
OASystem/OASystem.Api/Controllers/AuthController.cs

@@ -99,36 +99,34 @@ namespace OASystem.API.Controllers
             };
 
 
-            //DateTime createZebraTime = DateTime.Now;
-            //string authorId = dto.Number + "Token";
-            //string authorToken = await RedisRepository.RedisFactory.CreateRedisRepository().StringGetAsync<string>(authorId);//string 取
-            //if (authorToken !=  null)
-            //{
-            //    #region 解析出过期时间
-            //    var jwtHandler = new JwtSecurityTokenHandler();
-            //    JwtSecurityToken securityToken = jwtHandler.ReadJwtToken(authorToken);
-            //    DateTime expDt = (securityToken.Payload[JwtRegisteredClaimNames.Exp] ?? 0).GetInt().GetTimeSpmpToDate();
-            //    #endregion
-
-            //    if (expDt >= createZebraTime)  //超时重新获取token
-            //    {
-            //        //authorToken = await GeneralMethod.GetToken(_config, dto.Number, uId,uName, createZebraTime);
-            //        authorToken = await JwtHelper.IssueJwtAsync(new TokenModelJwt() { UserId = uId, UserName = uName,Role = role }); //
-            //    }
-
-            //    view.Expires = expDt;
-            //    view.Token = authorToken;
-            //}
-            //else
-            //{
-            //    view.Expires = createZebraTime.AddMinutes(30);
-            //    //view.Token = await GeneralMethod.GetToken(_config, dto.Number, uId, uName, createZebraTime); //JwtHelper
-            //    view.Token = await JwtHelper.IssueJwtAsync(new TokenModelJwt (){ UserId = uId,UserName = uName,Role = role }); //
-            //    TimeSpan ts = view.Expires.AddMinutes(-1) - createZebraTime; //设置redis 过期时间 比 jwt 时间 快一分钟
-            //    await RedisRepository.RedisFactory.CreateRedisRepository().StringSetAsync<string>(authorId, view.Token, ts);//string 存
+            DateTime createZebraTime = DateTime.Now;
+            string authorId = dto.Number + "Token";
+            string authorToken = await RedisRepository.RedisFactory.CreateRedisRepository().StringGetAsync<string>(authorId);//string 取
+            if (authorToken != null)
+            {
+                #region 解析出过期时间
+                var jwtHandler = new JwtSecurityTokenHandler();
+                JwtSecurityToken securityToken = jwtHandler.ReadJwtToken(authorToken);
+                DateTime expDt = (securityToken.Payload[JwtRegisteredClaimNames.Exp] ?? 0).GetInt().GetTimeSpmpToDate();
+                #endregion
 
+                if (expDt >= createZebraTime)  //超时重新获取token
+                {
+                    //authorToken = await GeneralMethod.GetToken(_config, dto.Number, uId,uName, createZebraTime);
+                    authorToken = await JwtHelper.IssueJwtAsync(new TokenModelJwt() { UserId = uId, UserName = uName, Role = role }); //
+                }
 
-            //}
+                view.Expires = expDt;
+                view.Token = authorToken;
+            }
+            else
+            {
+                view.Expires = createZebraTime.AddMinutes(30);
+                //view.Token = await GeneralMethod.GetToken(_config, dto.Number, uId, uName, createZebraTime); //JwtHelper
+                view.Token = await JwtHelper.IssueJwtAsync(new TokenModelJwt() { UserId = uId, UserName = uName, Role = role }); //
+                TimeSpan ts = view.Expires.AddMinutes(-1) - createZebraTime; //设置redis 过期时间 比 jwt 时间 快一分钟
+                await RedisRepository.RedisFactory.CreateRedisRepository().StringSetAsync<string>(authorId, view.Token, ts);//string 存
+            }
 
             //#region 添加登录用户上线信息
             //_hubContext.SignalRLogin(uId);