Commit ef85b948c469a34731ceeef29f7ad1d7a55a88ec

Authored by Zambom
1 parent dba43d19

Adjusts in api login process

Showing 1 changed file with 24 additions and 17 deletions   Show diff stats
api/views.py
1   -import requests
  1 +import requests, json
2 2 from django.shortcuts import get_object_or_404, reverse
3 3 from django.contrib.auth import authenticate
  4 +from django.views.decorators.csrf import csrf_exempt
4 5 from rest_framework import viewsets
5 6 from rest_framework.response import Response
6 7 from rest_framework.decorators import detail_route
... ... @@ -17,7 +18,6 @@ from django.http import HttpResponse
17 18  
18 19 class LoginViewset(viewsets.ReadOnlyModelViewSet):
19 20 queryset = User.objects.all()
20   - security = Security.objects.get(id = 1)
21 21 permissions_classes = (IsAuthenticatedOrReadOnly,)
22 22  
23 23 @detail_route(methods = ['post'])
... ... @@ -30,30 +30,37 @@ class LoginViewset(viewsets.ReadOnlyModelViewSet):
30 30  
31 31 return Response(serializer.data)
32 32  
  33 +@csrf_exempt
33 34 def getToken(request):
34 35 oauth = Application.objects.filter(name = "amadeus-droid")
  36 + security = Security.objects.get(id = 1)
35 37  
36 38 response = ""
37 39  
38   - if request.POST:
39   - username = request.POST['email']
40   - password = request.POST['password']
  40 + if request.method == "POST":
  41 + json_data = json.loads(request.body.decode('utf-8'))
  42 +
  43 + try:
  44 + username = json_data['email']
  45 + password = json_data['password']
41 46  
42   - user = authenticate(username = username, password = password)
  47 + user = authenticate(username = username, password = password)
43 48  
44   - if user is not None:
45   - if not security.maintence or user.is_staff:
46   - if oauth.count() > 0:
47   - oauth = oauth[0]
  49 + if user is not None:
  50 + if not security.maintence or user.is_staff:
  51 + if oauth.count() > 0:
  52 + oauth = oauth[0]
48 53  
49   - data = {
50   - "grant_type": "password",
51   - "username": username,
52   - "password": password
53   - }
  54 + data = {
  55 + "grant_type": "password",
  56 + "username": username,
  57 + "password": password
  58 + }
54 59  
55   - auth = (oauth.client_id, oauth.client_secret)
  60 + auth = (oauth.client_id, oauth.client_secret)
56 61  
57   - response = requests.post(request.build_absolute_uri(reverse('oauth2_provider:token')), data = data, auth = auth)
  62 + response = requests.post(request.build_absolute_uri(reverse('oauth2_provider:token')), data = data, auth = auth)
  63 + except KeyError:
  64 + response = "Error"
58 65  
59 66 return HttpResponse(response)
60 67 \ No newline at end of file
... ...