views.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from django.shortcuts import render
  2. from django.http import HttpResponse, HttpResponseRedirect
  3. from SampleApp import config
  4. from testOpenId.openid_api import OpenID_CLIENT
  5. from rest_framework.views import APIView
  6. from rest_framework.response import Response
  7. from rest_framework import authentication, permissions
  8. from django.contrib.auth.models import User
  9. authorization_url = config.OpenID_SERVER + config.OpenID_AUTHORIZATION_URL
  10. token_url = config.OpenID_SERVER + config.OpenID_TOKEN_URL
  11. # Create your views here.
  12. def home(request):
  13. url = authorization_url+"?client_id="+ config.OpenID_CLIENT_ID+"&response_type=code&redirect_uri="+config.OpenID_CALLBACK_URL
  14. return render(request, 'testOpenId/auth_link.html', {'url':url})
  15. def exchange(request):
  16. # import pdb;pdb.set_trace()
  17. code = request.GET.get('code').strip(),
  18. obj = OpenID_CLIENT()
  19. response = obj.get_access_token(code)
  20. print(response)
  21. return render(request, 'testOpenId/displaytoken.html', response)
  22. class GetAccessToken(APIView):
  23. permission_classes = (permissions.AllowAny,)
  24. def get(self, request, format=None):
  25. code = request.GET.get('code').strip()
  26. obj = OpenID_CLIENT()
  27. response = obj.get_access_token(code)
  28. return Response(response)
  29. class GetRefreshToken(APIView):
  30. permission_classes = (permissions.AllowAny,)
  31. def get(self, request, format=None):
  32. refresh_token = request.GET.get('refresh_token').strip(),
  33. obj = OpenID_CLIENT()
  34. response = obj.get_refresh_token(refresh_token)
  35. return Response(response)