|
@@ -16,11 +16,17 @@ 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 Test(View):
|
|
|
'''
|
|
@@ -30,30 +36,100 @@ class Test(View):
|
|
|
sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
|
|
|
animal_type_id=1:指定筛选条件
|
|
|
'''
|
|
|
+
|
|
|
@method_decorator(csrf_exempt)
|
|
|
def dispatch(self, *args, **kwargs):
|
|
|
return super(Test, self).dispatch(*args, **kwargs)
|
|
|
+
|
|
|
# 查询
|
|
|
def get(self, request, *args, **kwargs):
|
|
|
- client_id = '123'
|
|
|
- return ResponseJSON(0,'1111')
|
|
|
|
|
|
- redirect_uri = 'http://www.baidu.com/'
|
|
|
- uri = 'http://localhost:5000/oauth?response_type=code&client_id=%s&redirect_uri=%s' % (client_id, redirect_uri)
|
|
|
- from django.http import HttpResponseRedirect
|
|
|
- return HttpResponseRedirect(uri)
|
|
|
+ post_data = {
|
|
|
+ 'code': request.GET.get('code', None),
|
|
|
+ 'client_id': 'co',
|
|
|
+ 'client_secret': 'co',
|
|
|
+ 'grant_type': 'authorization_code',
|
|
|
+ 'redirect_uri': 'http://192.168.136.40:8077/Test/',
|
|
|
+ }
|
|
|
+ res = requests.post(url='http://192.168.136.40:9898/o/token/', data=post_data)
|
|
|
+ print(res.content)
|
|
|
+
|
|
|
+ if res.status_code == 200:
|
|
|
+ json_data = json.loads(res.content)
|
|
|
+ access_token= json_data.get('access_token',None)
|
|
|
+ print(access_token)
|
|
|
+ if access_token is not None:
|
|
|
+ get_data = {
|
|
|
+ 'access_token':access_token
|
|
|
+ }
|
|
|
+ ser = requests.get(url='http://192.168.136.40:9898/accounts/user/',data=get_data)
|
|
|
+ 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
|
|
|
+ response = HttpResponseRedirect(
|
|
|
+ 'http://192.168.136.39:8020/ansjer/html/main.html?access_token={}&refresh_token={}&rid={}&roleName={}&permList={}'.format(result['access_token'],result['refresh_token'],result['rid'],result['roleName'],result['permList']))
|
|
|
+ response.set_cookie('111username', username, 7200)
|
|
|
+ return response
|
|
|
+
|
|
|
+ response = HttpResponse(ResponseFormal(0, result, language='cn'))
|
|
|
+ response.set_cookie('username', username, 7200)
|
|
|
+ return response
|
|
|
+ return ResponseJSON(0, ser_data)
|
|
|
+
|
|
|
# 增加
|
|
|
def post(self, request, *args, **kwargs):
|
|
|
- json_data =json.loads(request.body.decode("utf-8"))
|
|
|
- return ResponseJSON(0,{'test':json_data})
|
|
|
+ json_data = json.loads(request.body.decode("utf-8"))
|
|
|
+ '''
|
|
|
+ token = get_token(request)
|
|
|
+ return JsonResponse({'token': token})
|
|
|
+ '''
|
|
|
+
|
|
|
+ return ResponseJSON(0, {'test': json_data})
|
|
|
+
|
|
|
# 修改 资源改变
|
|
|
- def put(self,request):
|
|
|
+ def put(self, request):
|
|
|
return ResponseJSON(404)
|
|
|
+
|
|
|
# 修改 属性改变
|
|
|
- def PATCH(self,request):
|
|
|
+ def PATCH(self, request):
|
|
|
return ResponseJSON(404)
|
|
|
- #删除
|
|
|
- def delete(self,request):
|
|
|
+
|
|
|
+ # 删除
|
|
|
+ def delete(self, request):
|
|
|
return ResponseJSON(404)
|
|
|
+
|
|
|
def validation(self, request_dict, *args, **kwargs):
|
|
|
return ResponseJSON(404)
|