|
@@ -0,0 +1,119 @@
|
|
|
+#!/usr/bin/env python3
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+"""
|
|
|
+@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
|
|
|
+@AUTHOR: ASJRD019
|
|
|
+@NAME: AnsjerFormal
|
|
|
+@software: PyCharm
|
|
|
+@DATE: 2020/3/18 9:38
|
|
|
+@Version: python3.6
|
|
|
+@MODIFY DECORD:ansjer dev
|
|
|
+@file: AppSetController.py
|
|
|
+@Contact: pzb3076@163.com
|
|
|
+"""
|
|
|
+import requests
|
|
|
+from Ansjer.config import SERVER_TYPE
|
|
|
+from Model.models import ApplicationModel
|
|
|
+from django.views.generic.base import View
|
|
|
+from Object.RedisObject import RedisObject
|
|
|
+from Object.TokenObject import TokenObject
|
|
|
+from Service.ModelService import ModelService
|
|
|
+from Service.CommonService import CommonService
|
|
|
+from django.http import JsonResponse
|
|
|
+from django.contrib import auth
|
|
|
+import time,json
|
|
|
+from Object.ResponseObject import ResponseObject
|
|
|
+ # http://192.168.136.39:8000/login/oauth/authorize
|
|
|
+class ApplicationView(View):
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ operation = kwargs.get('operation', None)
|
|
|
+ return self.validation(request.GET, operation)
|
|
|
+
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ operation = kwargs.get('operation', None)
|
|
|
+ return self.validation(request.POST, operation)
|
|
|
+
|
|
|
+ def validation(self, request_dict, operation):
|
|
|
+ response = ResponseObject()
|
|
|
+ token = request_dict.get('token', None)
|
|
|
+ tko = TokenObject(token)
|
|
|
+ if tko.code != 0:
|
|
|
+ userID = tko.userID
|
|
|
+ if operation == 'authorize':
|
|
|
+ return self.do_authorize(request_dict, userID, response)
|
|
|
+ elif operation == 'access_token':
|
|
|
+ return self.do_token(request_dict, userID, response)
|
|
|
+ elif operation == 'user':
|
|
|
+ return self.do_user(request_dict, userID, response)
|
|
|
+ else:
|
|
|
+ return response.json(tko.code)
|
|
|
+ else:
|
|
|
+ return response.json(414)
|
|
|
+
|
|
|
+ def do_authorize(self,request_dict, userID, response):
|
|
|
+ state = request_dict.get("state", '')
|
|
|
+ client_id = request_dict.get("client_id", '')
|
|
|
+ response_type = request_dict.get("response_type", '')
|
|
|
+ scope = request_dict.get("scope", '')
|
|
|
+ redirect_uri = request_dict.get("redirect_uri", '')
|
|
|
+ code = CommonService.encrypt_data(32)
|
|
|
+ print(redirect_uri)
|
|
|
+ redirect_uri = redirect_uri + '?code=' + code + '&state=' + state
|
|
|
+ return response.json(0, res=redirect_uri)
|
|
|
+
|
|
|
+ # 增加对code和client_id的校验代码,返回access_token和refresh_token
|
|
|
+ def do_token(self,request_dict, userID, response):
|
|
|
+ code = request_dict.get("code", None)
|
|
|
+ client_id = request_dict.get("client_id", None)
|
|
|
+ refresh_token = request_dict.get("refresh_token", None)
|
|
|
+ print('refresh_token:')
|
|
|
+ print(refresh_token)
|
|
|
+ print('code:')
|
|
|
+ print(code)
|
|
|
+ print('client_id:')
|
|
|
+ print(client_id)
|
|
|
+ access_token = CommonService.encrypt_data(randomlength=32)
|
|
|
+ refresh_token = CommonService.encrypt_data(randomlength=32)
|
|
|
+ res_json = {
|
|
|
+ "access_token": access_token,
|
|
|
+ "token_type": "bearer",
|
|
|
+ "expires_in": 3600,
|
|
|
+ "refresh_token": refresh_token
|
|
|
+ }
|
|
|
+ print(res_json)
|
|
|
+ return JsonResponse(res_json)
|
|
|
+
|
|
|
+ def do_user(self, request_dict, userID, response):
|
|
|
+ code = request_dict.get("code", None)
|
|
|
+ client_id = request_dict.get("client_id", None)
|
|
|
+ refresh_token = request_dict.get("refresh_token", None)
|
|
|
+ print('refresh_token:')
|
|
|
+ print(refresh_token)
|
|
|
+ print('code:')
|
|
|
+ print(code)
|
|
|
+ print('client_id:')
|
|
|
+ print(client_id)
|
|
|
+ access_token = CommonService.encrypt_data(randomlength=32)
|
|
|
+ refresh_token = CommonService.encrypt_data(randomlength=32)
|
|
|
+ res_json ={
|
|
|
+ "login": "pengzhibo168",
|
|
|
+ "id": 1,
|
|
|
+ "node_id": "MDQ6VXNlcjE=",
|
|
|
+ "gravatar_id": "",
|
|
|
+ "type": "User",
|
|
|
+ "name": "monalisa octocat",
|
|
|
+ "company": "asdfda",
|
|
|
+ "location": "San Francisco",
|
|
|
+ "email": "sadf@sadf.com",
|
|
|
+ "bio": "There once was...",
|
|
|
+ "public_repos": 2,
|
|
|
+ "public_gists": 1,
|
|
|
+ "followers": 20,
|
|
|
+ "following": 0,
|
|
|
+ "created_at": "2008-01-14T04:33:35Z",
|
|
|
+ "updated_at": "2008-01-14T04:33:35Z"
|
|
|
+ }
|
|
|
+ print(res_json)
|
|
|
+ return JsonResponse(res_json)
|