123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #!/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)
|