From 1408601f448f77fcdb82204236fd61bfc36d0938 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <279049017@qq.com>
Date: Thu, 11 Mar 2021 14:22:07 +0800
Subject: [PATCH] 优化token验证的流程,再完善

---
 kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java b/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java
index 893febb..74d1ccc 100644
--- a/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java
+++ b/kidgrow-uaa/kidgrow-uaa-biz/src/main/java/com/kidgrow/oauth2/service/impl/RedisTokensServiceImpl.java
@@ -108,19 +108,20 @@
         if (StringUtils.isBlank(webApp)) {
             return ResultBody.failed("请输入应用id");
         }
-        //获取token
-        Collection<OAuth2AccessToken> tokensByClientIdAndUserName = this.tokenStore.findTokensByClientIdAndUserName(webApp, name);
+        Collection<OAuth2AccessToken> tokensByClientIdAndUserName = tokenStore.findTokensByClientIdAndUserName(webApp, name);
         List<OAuth2AccessToken> collect = tokensByClientIdAndUserName.stream().collect(Collectors.toList());
-//        验证token
-        if(collect!=null){
+        if(collect!=null&&collect.size()>0){
+            //获取最后一次token
             OAuth2AccessToken oAuth2AccessToken = collect.get(collect.size() - 1);
-            if(oAuth2AccessToken.isExpired()){
+            //获取最亲的token
+            OAuth2AccessToken oAuth2AccessTokenNew = tokenStore.readAccessToken(oAuth2AccessToken.getValue());
+            if(oAuth2AccessTokenNew!=null&&oAuth2AccessTokenNew.isExpired()){
                 return ResultBody.ok().data(true);
-            }else {
+            }else if (oAuth2AccessTokenNew!=null&&!oAuth2AccessTokenNew.isExpired()){
                 return ResultBody.ok().data(false);
             }
-        }else {
             return ResultBody.ok().data(true);
         }
+        return ResultBody.ok().data(true);
     }
 }

--
Gitblit v1.8.0