dahee kim

Add feat to issue token in api/auth

1 -# Generated by Django 3.1.2 on 2020-11-16 14:19
2 -
3 -from django.db import migrations, models
4 -import django.utils.timezone
5 -
6 -
7 -class Migration(migrations.Migration):
8 -
9 - initial = True
10 -
11 - dependencies = [
12 - ]
13 -
14 - operations = [
15 - migrations.CreateModel(
16 - name='Device',
17 - fields=[
18 - ('device_id', models.AutoField(primary_key=True, serialize=False)),
19 - ('rfid_id', models.CharField(max_length=255)),
20 - ('created', models.DateTimeField(default=django.utils.timezone.now)),
21 - ],
22 - ),
23 - migrations.CreateModel(
24 - name='Door',
25 - fields=[
26 - ('door_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
27 - ],
28 - ),
29 - migrations.CreateModel(
30 - name='Lock',
31 - fields=[
32 - ('id', models.IntegerField(primary_key=True, serialize=False)),
33 - ('state', models.BooleanField(default=True)),
34 - ],
35 - ),
36 - migrations.CreateModel(
37 - name='Record',
38 - fields=[
39 - ('id', models.IntegerField(primary_key=True, serialize=False)),
40 - ('recording', models.BooleanField(default=True)),
41 - ],
42 - ),
43 - migrations.CreateModel(
44 - name='RemoteHistory',
45 - fields=[
46 - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
47 - ('device_name', models.CharField(max_length=255)),
48 - ('ctrtime', models.DateTimeField(default=django.utils.timezone.now)),
49 - ],
50 - ),
51 - migrations.CreateModel(
52 - name='Video',
53 - fields=[
54 - ('vid_name', models.CharField(max_length=255, primary_key=True, serialize=False)),
55 - ('created', models.DateTimeField(default=django.utils.timezone.now)),
56 - ],
57 - ),
58 - ]
1 from django.db import models 1 from django.db import models
2 from django.conf import settings 2 from django.conf import settings
3 from django.utils import timezone 3 from django.utils import timezone
4 +from django.contrib.auth.models import User
4 5
5 # Create your models here. 6 # Create your models here.
6 class Door(models.Model) : 7 class Door(models.Model) :
......
...@@ -5,15 +5,18 @@ from django.http import HttpResponse ...@@ -5,15 +5,18 @@ from django.http import HttpResponse
5 from django.core import serializers 5 from django.core import serializers
6 from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist 6 from django.core.exceptions import FieldDoesNotExist, ObjectDoesNotExist
7 from django.shortcuts import render 7 from django.shortcuts import render
8 +from django.contrib.auth.models import User
8 9
9 from api.videorecord import record 10 from api.videorecord import record
10 from api.models import Video, Device, RemoteHistory, Lock, Record, Door 11 from api.models import Video, Device, RemoteHistory, Lock, Record, Door
11 -from api.serializers import VideoSerializer, DeviceSerializer, RemoteHistorySerializer, RecordSerializer 12 +from api.serializers import VideoSerializer, DeviceSerializer, RemoteHistorySerializer, RecordSerializer, DoorSerializer
12 13
13 from rest_framework import status 14 from rest_framework import status
14 from rest_framework.views import APIView 15 from rest_framework.views import APIView
15 from rest_framework.request import Request 16 from rest_framework.request import Request
16 from rest_framework.response import Response 17 from rest_framework.response import Response
18 +from rest_framework.authtoken.models import Token
19 +
17 """ 20 """
18 from boto3.session import Session 21 from boto3.session import Session
19 from src.settings import AWS_REGION 22 from src.settings import AWS_REGION
...@@ -23,6 +26,7 @@ from src.settings import S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCK ...@@ -23,6 +26,7 @@ from src.settings import S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCK
23 import time 26 import time
24 from datetime import datetime, timedelta 27 from datetime import datetime, timedelta
25 import json 28 import json
29 +import uuid
26 # Create your views here. 30 # Create your views here.
27 31
28 #로그인 및 토큰 반환 32 #로그인 및 토큰 반환
...@@ -34,9 +38,13 @@ class Login(APIView) : ...@@ -34,9 +38,13 @@ class Login(APIView) :
34 raise FieldDoesNotExist 38 raise FieldDoesNotExist
35 queryset = Door.objects.filter(door_id = request_id) # door_id 유효성 검색 39 queryset = Door.objects.filter(door_id = request_id) # door_id 유효성 검색
36 if queryset.exists() :# 유효할 때 40 if queryset.exists() :# 유효할 때
41 + userid = uuid.uuid4()
42 + pw = uuid.uuid4()
43 + user = User.objects.create_user(username=str(userid), password=str(pw))
44 + token = Token.objects.create(user=user)
37 res = { 45 res = {
38 'is_available' : True, 46 'is_available' : True,
39 - 'access_token' : '토큰' # 토큰 도입 후 수정 필요 47 + 'access_token' : token.key
40 } 48 }
41 else : 49 else :
42 res = { 50 res = {
...@@ -50,6 +58,15 @@ class Login(APIView) : ...@@ -50,6 +58,15 @@ class Login(APIView) :
50 'error' : "FieldDoesNotExist ", 58 'error' : "FieldDoesNotExist ",
51 'date' : datetime.now() 59 'date' : datetime.now()
52 }, status = status.HTTP_400_BAD_REQUEST) 60 }, status = status.HTTP_400_BAD_REQUEST)
61 +
62 +'''
63 + def post(self, request, format = None) :
64 + queryset = Door.objects.create(door_id = 12345)
65 + print('냐냐')
66 + return Response({
67 + 'msg' : 'doorid값 삽입 완료',
68 + })
69 +'''
53 70
54 #기기 관련 api 71 #기기 관련 api
55 class Devices(APIView) : 72 class Devices(APIView) :
......
...@@ -41,6 +41,7 @@ INSTALLED_APPS = [ ...@@ -41,6 +41,7 @@ INSTALLED_APPS = [
41 'api', 41 'api',
42 'rest_framework', 42 'rest_framework',
43 'corsheaders', 43 'corsheaders',
44 + 'rest_framework.authtoken',
44 ] 45 ]
45 46
46 MIDDLEWARE = [ 47 MIDDLEWARE = [
......