#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved. @AUTHOR: ASJRD018 @NAME: langer @software: PyCharm @DATE: 2019/6/3 17:29 @Version: python3.6 @MODIFY DECORD:ansjer dev @file: User.py @Contact: chanjunkai@163.com """ import json from django.http import HttpResponse from django.views.generic import TemplateView from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator from object.ResponseObject import ResponseObject from django.contrib.auth.hashers import make_password, check_password from model.models import UserModel import time from object.TokenObject import TokenObject # http://127.0.0.1:8000/user/register?username=admin&password=admin class registerView(TemplateView): def post(self, request, *args, **kwargs): request.encoding = 'utf-8' request_dict = json.loads(request.body.decode('utf-8')) return self.validate(request_dict) def get(self, request, *args, **kwargs): request.encoding = 'utf-8' request_dict = request.GET return self.validate(request_dict) def validate(self, request_dict): response = ResponseObject() username = request_dict.get('username', None) password = request_dict.get('password', None) if username and password: pwd = make_password(password) nowTime = int(time.time()) create_dict = { 'username': username, 'password': make_password(password), 'addTime': nowTime, 'updTime': nowTime} try: UserModel.objects.create(**create_dict) except Exception as e: return response.json(0, repr(e)) else: return response.json(0) else: return response.json(444) # http://127.0.0.1:8000/user/login?username=admin&password=admin class loginView(TemplateView): def post(self, request, *args, **kwargs): request.encoding = 'utf-8' request_dict = json.loads(request.body.decode('utf-8')) return self.validate(request_dict) def get(self, request, *args, **kwargs): request.encoding = 'utf-8' request_dict = request.GET return self.validate(request_dict) def validate(self, request_dict): response = ResponseObject() username = request_dict.get('username', None) password = request_dict.get('password', None) if username and password: user_qs = UserModel.objects.filter(username=username) if check_password(password, user_qs[0].password): tko = TokenObject() res = tko.generate({'userID': user_qs[0].id}) return response.json(0,res) else: return response.json(401) else: return response.json(444)