|
@@ -10,4 +10,93 @@
|
|
|
@MODIFY DECORD:ansjer dev
|
|
|
@file: OauthManage.py
|
|
|
@Contact: chanjunkai@163.com
|
|
|
-"""
|
|
|
+"""
|
|
|
+from django.views.generic.base import View
|
|
|
+from django.utils.decorators import method_decorator
|
|
|
+from django.views.decorators.csrf import csrf_exempt
|
|
|
+# from Ansjer.settings import *
|
|
|
+from Service.TokenManager import *
|
|
|
+from django.contrib import auth
|
|
|
+from django.http import HttpResponseRedirect
|
|
|
+'''
|
|
|
+http://192.168.136.40:8077/Test
|
|
|
+'''
|
|
|
+import json
|
|
|
+from Service.ResponseService import *
|
|
|
+import requests
|
|
|
+from Service.ModelService import ModelService
|
|
|
+from django.middleware.csrf import get_token
|
|
|
+from django.http import JsonResponse
|
|
|
+
|
|
|
+class OauthManage(View):
|
|
|
+ @method_decorator(csrf_exempt)
|
|
|
+ def dispatch(self, *args, **kwargs):
|
|
|
+ return super(OauthManage, self).dispatch(*args, **kwargs)
|
|
|
+ # 查询
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+
|
|
|
+ return
|
|
|
+ # 增加
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ try:
|
|
|
+ json_data = json.loads(request.body.decode("utf-8"))
|
|
|
+ except Exception as e:
|
|
|
+ print(repr(e))
|
|
|
+ return ResponseJSON(10,repr(e))
|
|
|
+ else:
|
|
|
+ access_token = json_data.get('access_token', None)
|
|
|
+ if access_token is not None:
|
|
|
+ ser = requests.get(url='http://192.168.136.40:9898/accounts/user/', data={'access_token':access_token})
|
|
|
+ if ser.status_code == 200:
|
|
|
+ ser_data = json.loads(ser.content)
|
|
|
+ print(ser_data)
|
|
|
+ username = ser_data.get('username', None)
|
|
|
+ if username is not None:
|
|
|
+ userValid = Device_User.objects.filter(username=username)
|
|
|
+ mCode = 1324
|
|
|
+ userID = userValid[0].userID
|
|
|
+ authtoken_Obj = AuthToken_Token.objects.filter(tokenID_id=userID)
|
|
|
+ if authtoken_Obj.exists():
|
|
|
+ tokenManager = JSONTokenManager()
|
|
|
+ access_token = tokenManager.deToken(authtoken_Obj[0].access_token)
|
|
|
+ refresh_token = tokenManager.deToken(authtoken_Obj[0].refresh_token)
|
|
|
+ else:
|
|
|
+ access_token = False
|
|
|
+ refresh_token = False
|
|
|
+ if access_token is not False and refresh_token is not False:
|
|
|
+ resultDict = {'result': {'access_token': access_token, 'refresh_token': refresh_token},
|
|
|
+ 'error_code': 0}
|
|
|
+ else:
|
|
|
+ JSON = json.dumps({'userID': userID, 'mCode': mCode}, ensure_ascii=False)
|
|
|
+ tokenManager = JSONTokenManager()
|
|
|
+ tokenJSON = tokenManager.generate_AToken(JSON=JSON,
|
|
|
+ iCode=tokenManager.getSalt(strLen=8))
|
|
|
+ resultDict = json.loads(tokenJSON)
|
|
|
+ error_code = resultDict.get('error_code', None)
|
|
|
+ if error_code != None and error_code == 0:
|
|
|
+ result = resultDict.get('result', None)
|
|
|
+ if result != None:
|
|
|
+ import datetime
|
|
|
+ now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
|
|
|
+ userValid.update(last_login=now_time, online=True, machine_code=mCode)
|
|
|
+ role_dict = ModelService.own_role(userID=userID)
|
|
|
+ result['rid'] = role_dict['rid']
|
|
|
+ result['roleName'] = role_dict['roleName']
|
|
|
+ result['permList'] = ModelService.own_permission(userID)
|
|
|
+ result['username'] = username
|
|
|
+ return ResponseJSON(0, result)
|
|
|
+
|
|
|
+ # 修改 资源改变
|
|
|
+ def put(self, request):
|
|
|
+ return ResponseJSON(404)
|
|
|
+
|
|
|
+ # 修改 属性改变
|
|
|
+ def PATCH(self, request):
|
|
|
+ return ResponseJSON(404)
|
|
|
+
|
|
|
+ # 删除
|
|
|
+ def delete(self, request):
|
|
|
+ return ResponseJSON(404)
|
|
|
+
|
|
|
+ def validation(self, request_dict, *args, **kwargs):
|
|
|
+ return ResponseJSON(404)
|