Browse Source

用户扫码登录

peng 2 years ago
parent
commit
7a8b82ee00
3 changed files with 45 additions and 11 deletions
  1. 35 11
      Controller/AWS/KVSController.py
  2. 8 0
      Object/RedisObject.py
  3. 2 0
      Object/ResponseObject.py

+ 35 - 11
Controller/AWS/KVSController.py

@@ -4,16 +4,18 @@
 @Time : 2022/10/18 9:48
 @Time : 2022/10/18 9:48
 @File :KVSController.py
 @File :KVSController.py
 """
 """
+import hashlib
 import time
 import time
-
+import uuid
 from django.views import View
 from django.views import View
 
 
 from Model.models import KVS
 from Model.models import KVS
 from Object.AWS.AmazonKVSUtil import AmazonKVSObject
 from Object.AWS.AmazonKVSUtil import AmazonKVSObject
 from Object.AWS.AmazonKVAMUtil import AmazonKVAMObject
 from Object.AWS.AmazonKVAMUtil import AmazonKVAMObject
 from Object.AWS.AmazonKinesisVideoUtil import AmazonKinesisVideoObject
 from Object.AWS.AmazonKinesisVideoUtil import AmazonKinesisVideoObject
+from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
-from Ansjer.config import ACCESS_KEY_ID, SECRET_ACCESS_KEY, REGION_NAME
+from Ansjer.config import ACCESS_KEY_ID, SECRET_ACCESS_KEY, REGION_NAME, SERVER_DOMAIN
 
 
 
 
 class UserRelatedView(View):
 class UserRelatedView(View):
@@ -43,14 +45,19 @@ class UserRelatedView(View):
         """
         """
         网页生成二维码
         网页生成二维码
         @param request_dict: 请求参数
         @param request_dict: 请求参数
-        @request_dict serial_number: 序列号
         @param response: 响应对象
         @param response: 响应对象
         @return: response
         @return: response
         """
         """
-        serial_number = request_dict.get('serial_number', None)
-
+        nwo_time = time.time()
+        redis_obj = RedisObject()
         try:
         try:
-            return response.json(0)
+            uuid_number = hashlib.md5((str(uuid.uuid1()) + str(nwo_time)).encode('utf-8')).hexdigest()
+            flag = redis_obj.set_ex_data(uuid_number, 0, 3000)
+            res = {'type': 'autologin', 'id': uuid_number}
+            if flag:
+                return response.json(0, res)
+            else:
+                return response.json(119)
         except Exception as e:
         except Exception as e:
             print(e)
             print(e)
             return response.json(500)
             return response.json(500)
@@ -64,10 +71,18 @@ class UserRelatedView(View):
         @param response: 响应对象
         @param response: 响应对象
         @return: response
         @return: response
         """
         """
-        serial_number = request_dict.get('serial_number', None)
-
+        uuid_number = request_dict.get('uuid', None)
+        if not uuid_number:
+            return response.json(444, {'error param': 'uuid'})
         try:
         try:
-            return response.json(0)
+            redis_obj = RedisObject()
+            status = redis_obj.get_data(uuid_number)
+            if status == 0:
+                return response.json(18)
+            elif status is False:
+                return response.json(119)
+            redis_obj.del_data(uuid_number)
+            return response.json(0, {'token': status})
         except Exception as e:
         except Exception as e:
             print(e)
             print(e)
             return response.json(500)
             return response.json(500)
@@ -81,9 +96,18 @@ class UserRelatedView(View):
         @param response: 响应对象
         @param response: 响应对象
         @return: response
         @return: response
         """
         """
-        serial_number = request_dict.get('serial_number', None)
-
+        uuid_number = request_dict.get('uuid', None)
+        token = request_dict.get('token', None)
+        if not all([uuid_number, token]):
+            return response.json(444, {'error param': 'uuid or token'})
+        redis_obj = RedisObject()
         try:
         try:
+            status = redis_obj.get_data(uuid_number)
+            if status is False:
+                return response.json(119)
+            flag = redis_obj.set_ex_data(uuid_number, token)
+            if flag is False:
+                return response.json(309)
             return response.json(0)
             return response.json(0)
         except Exception as e:
         except Exception as e:
             print(e)
             print(e)

+ 8 - 0
Object/RedisObject.py

@@ -98,3 +98,11 @@ class RedisObject:
             return keys
             return keys
         else:
         else:
             return False
             return False
+
+    def set_ex_data(self, key, val, expire=0):
+        try:
+            self.CONN.setex(key, val, expire)
+        except Exception as e:
+            return False
+        else:
+            return True

+ 2 - 0
Object/ResponseObject.py

@@ -21,6 +21,7 @@ class ResponseObject(object):
             15: 'Device has been bound',
             15: 'Device has been bound',
             16: 'WeChat has been bound, please log in and unbind using WeChat',
             16: 'WeChat has been bound, please log in and unbind using WeChat',
             17: 'No email or mobile phone login',
             17: 'No email or mobile phone login',
+            18: 'User not logged in',
             44: 'System error! Can not send email',
             44: 'System error! Can not send email',
             48: 'System object error!',
             48: 'System object error!',
             89: 'Already send the code, please check it or get it again after 10m',
             89: 'Already send the code, please check it or get it again after 10m',
@@ -131,6 +132,7 @@ class ResponseObject(object):
             15: '设备已被绑定',
             15: '设备已被绑定',
             16: '微信已被绑定,请使用微信登录并解绑',
             16: '微信已被绑定,请使用微信登录并解绑',
             17: '未绑定邮箱或者手机登录方式',
             17: '未绑定邮箱或者手机登录方式',
+            18: '用户未登录',
             44: '系统错误!无法发送电子邮件',
             44: '系统错误!无法发送电子邮件',
             48: '系统对象错误',
             48: '系统对象错误',
             89: '已发验证码,请检测或10分钟后重新获取。',
             89: '已发验证码,请检测或10分钟后重新获取。',