Browse Source

新增解密etk接口

locky 1 year ago
parent
commit
1559f98058
2 changed files with 27 additions and 0 deletions
  1. 1 0
      AnsjerPush/urls.py
  2. 26 0
      Controller/ShadowController.py

+ 1 - 0
AnsjerPush/urls.py

@@ -6,6 +6,7 @@ from Controller.ComboCron import ComboCronPushController
 
 urlpatterns = [
     path('deviceShadow/generateUTK', ShadowController.generate_utk),
+    path('deviceShadow/decryptETK', ShadowController.decrypt_etk),
     path('deviceShadow/update', ShadowController.update_device_shadow),
 
     path('notify/push', DetectController.NotificationView.as_view()),

+ 26 - 0
Controller/ShadowController.py

@@ -11,6 +11,7 @@ from Model.models import Device_Info, UidSetModel, UID_Preview, VoicePromptModel
 from Object.ETkObject import ETkObject
 from Object.ResponseObject import ResponseObject
 from Service.CommonService import CommonService
+from Service.DevicePushService import DevicePushService
 
 
 def generate_utk(request):
@@ -45,6 +46,31 @@ def generate_utk(request):
         return response.json(444, 'username password')
 
 
+def decrypt_etk(request):
+    """
+    解密etk或uid_token
+    @param request: 请求
+    @request etk:
+    @request uid_token:
+    @return : uid
+    """
+    request.encoding = 'utf-8'
+    response = ResponseObject()
+    if request.method == 'GET':
+        request_dict = request.GET
+    elif request.method == 'POST':
+        request_dict = request.POST
+    else:
+        return response.json(444, 'wrong method')
+
+    etk = request_dict.get('etk', None)
+    uid_token = request_dict.get('uid_token', None)
+    if not any([etk, uid_token]):
+        return response.json(444, 'uid')
+    uid = DevicePushService.decode_uid(etk, uid_token)
+    return response.json(0, {'uid': uid})
+
+
 def update_device_shadow(request):
     """
     设备生成或更新(复位时)设备影子