Explorar o código

修改密码过期掉refresh_token

locky %!s(int64=3) %!d(string=hai) anos
pai
achega
75b5ced8d5
Modificáronse 2 ficheiros con 19 adicións e 2 borrados
  1. 6 2
      Controller/UserController.py
  2. 13 0
      Object/TokenObject.py

+ 6 - 2
Controller/UserController.py

@@ -429,9 +429,9 @@ class v3ChangePwdView(TemplateView):
             response.lang = tko.lang
             if tko.code != 0:
                 return response.json(tko.code)
-            return self.updatePwd(tko.userID, oldPwd, newPwd, response)
+            return self.updatePwd(tko, tko.userID, oldPwd, newPwd, response)
 
-    def updatePwd(self, userID, oldPwd, newPwd, response):
+    def updatePwd(self, tko, userID, oldPwd, newPwd, response):
         user_qs = Device_User.objects.filter(userID=userID)
         if not user_qs.exists():
             return response.json(104)
@@ -441,6 +441,10 @@ class v3ChangePwdView(TemplateView):
             return response.json(111)
         update = user_qs.update(password=make_password(newPwd))
         if update:
+            # 过期掉refresh_token
+            res = tko.expire_refresh_token()
+            if not res:
+                return response.json(177)
             return response.json(0)
         else:
             return response.json(177)

+ 13 - 0
Object/TokenObject.py

@@ -110,6 +110,19 @@ class TokenObject:
             self.code = 0
             return res
 
+    # 过期掉refresh_token
+    def expire_refresh_token(self):
+        try:
+            userID = self.userID
+            lang = self.lang
+            user = self.user
+            refresh_data = {'userID': userID, 'lang': lang, 'user': user, 'exp': 0}     # 过期时间置0
+            refresh_data = jwt.encode(refresh_data, OAUTH_REFRESH_TOKEN_SECRET, algorithm='HS256')
+            return refresh_data
+        except Exception as e:
+            self.code = 309
+            return False
+
     def encryption(self, data={}):
         try:
             access_expire = int(OAUTH_ACCESS_TOKEN_TIME.total_seconds())