summaryrefslogtreecommitdiff
path: root/web/apps/test_records/auth.py
blob: cbdf452a238b49bf470862125c83e08060ebbefa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# -*- coding: utf-8 -*-
from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.authtoken.models import Token
from rest_framework.response import Response
from rest_framework.authtoken.serializers import AuthTokenSerializer
from rest_framework.schemas import ManualSchema
import coreapi
import coreschema
from .models import UserMachine


class MachineAuthToken(ObtainAuthToken):
    # super.schema
    # super.schema = ManualSchema(
    #     fields=[
    #         coreapi.Field(
    #             name="machine",
    #             required=True,
    #             location='form',
    #             schema=coreschema.String(
    #                 title="MachineSNS",
    #                 description="Valid MachineSNS for authentication",
    #             ),
    #         ),
    #     ],
    #     encoding="application/json",
    # )

    def post(self, request, *args, **kwargs):
        print(self.schema)
        serializer = self.serializer_class(data=request.data,
                                           context={'request': request})
        serializer.is_valid(raise_exception=True)
        UserMachine = serializer.validated_data['UserMachine']
        token, created = Token.objects.get_or_create(UserMachine=UserMachine)
        return Response({
            'token': token.key,
            'machine_id': UserMachine,
        })