Browse Source

Added REST APIS Get access_token AND refresh_token

Arpit Singh 5 years ago
parent
commit
cd9abea008
3 changed files with 31 additions and 0 deletions
  1. 1 0
      SampleApp/settings.py
  2. 3 0
      SampleApp/urls.py
  3. 27 0
      testOpenId/views.py

+ 1 - 0
SampleApp/settings.py

@@ -38,6 +38,7 @@ INSTALLED_APPS = [
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'testOpenId',
+    'rest_framework',
 ]
 
 MIDDLEWARE = [

+ 3 - 0
SampleApp/urls.py

@@ -15,7 +15,10 @@ Including another URLconf
 """
 from django.contrib import admin
 from django.urls import path, include
+from testOpenId import views
 
 urlpatterns = [
     path('consumer/', include('testOpenId.urls')),
+    path('api/access_token/', views.GetAccessToken.as_view()),
+    path('api/refresh_token/', views.GetRefreshToken.as_view()),
 ]

+ 27 - 0
testOpenId/views.py

@@ -4,6 +4,11 @@ from django.http import HttpResponse, HttpResponseRedirect
 from SampleApp import config
 from testOpenId.openid_api import OpenID_CLIENT
 
+from rest_framework.views import APIView
+from rest_framework.response import Response
+from rest_framework import authentication, permissions
+from django.contrib.auth.models import User
+
 
 authorization_url = config.OpenID_SERVER + config.OpenID_AUTHORIZATION_URL
 token_url = config.OpenID_SERVER + config.OpenID_TOKEN_URL
@@ -22,3 +27,25 @@ def exchange(request):
     response = obj.get_access_token(code)
     print(response)
     return render(request, 'testOpenId/displaytoken.html', response)
+
+
+class GetAccessToken(APIView):
+
+    permission_classes = (permissions.AllowAny,)
+
+    def get(self, request, format=None):
+        code = request.GET.get('code').strip()
+        obj = OpenID_CLIENT()
+        response = obj.get_access_token(code)
+        return Response(response)
+
+
+class GetRefreshToken(APIView):
+
+    permission_classes = (permissions.AllowAny,)
+
+    def get(self, request, format=None):
+        refresh_token = request.GET.get('refresh_token').strip(),
+        obj = OpenID_CLIENT()
+        response = obj.get_refresh_token(refresh_token)
+        return Response(response)