#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved. @AUTHOR: ASJRD018 @NAME: Ansjer @software: PyCharm @DATE: 2018/5/22 13:58 @Version: python3.6 @MODIFY DECORD:ansjer dev @file: Test.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 Test(View): ''' limit=10:指定返回记录的数量 offset=10:指定返回记录的开始位置。 page=2&per_page=100:指定第几页,以及每页的记录数。 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): 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 = HttpResponseRedirect('http://192.168.136.39:8020/ansjer/html/main.html') response.set_cookie('username', username, 7200) response.set_cookie('access_token', result['access_token'], 7200) response.set_cookie('refresh_token', result['refresh_token'], 7200) response.set_cookie('rid', result['rid'], 7200) response.set_cookie('roleName', result['roleName'], 7200) response.set_cookie('permList', result['permList'], 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")) ''' token = get_token(request) return JsonResponse({'token': token}) ''' return ResponseJSON(0, {'test': json_data}) # 修改 资源改变 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)