Browse Source

fixes some issues

Mohidul Islam 5 năm trước cách đây
mục cha
commit
3740c593e2
3 tập tin đã thay đổi với 22 bổ sung9 xóa
  1. 9 8
      gauth/utils.py
  2. 8 1
      gauth/views.py
  3. 5 0
      goauth/settings.py

+ 9 - 8
gauth/utils.py

@@ -1,26 +1,27 @@
 from django.utils import timezone
-from .views import CLIENT_SECRETS_FILE
 from requests import post
-
+from django.conf import settings
 from .models import UserModel
+CLIENT_SECRETS_FILE = "client_secrets.json"
 
 
 def has_expired(credentials):
     expiry_time = credentials['access_token']
-    return timezone.datetime.now() > expiry_time
+    return str(timezone.datetime.now()) > expiry_time
 
 
 def get_access_token(request):
     uid = request.user.id
-    user = UserModel.objects.filter(pk=uid)
+    user = UserModel.objects.filter(pk=uid).first()
     if user:
         refresh_token = user.refresh_token
     else:
         return None
 
-    client_id = CLIENT_SECRETS_FILE.client_id
-    client_secret = CLIENT_SECRETS_FILE.client_secret
-    token_uri = CLIENT_SECRETS_FILE.token_uri
+    client_id = settings.CLIENT_ID
+    client_secret = settings.CLIENT_SECRET
+    token_uri = "https://oauth2.googleapis.com/token"
+    print(client_id, client_secret, token_uri)
     params = {
         "grant_type": "refresh_token",
         "client_id": client_id,
@@ -38,4 +39,4 @@ def get_access_token(request):
         'expiry': expiry
     }
     request.session['credentials'] = credentials
-    return response.access_token
+    return response['access_token']

+ 8 - 1
gauth/views.py

@@ -4,14 +4,21 @@ from django.urls import reverse
 import google_auth_oauthlib.flow
 from django.contrib.auth.decorators import login_required
 
+from .utils import get_access_token
+
 from .models import UserModel
 
 
 @login_required
 def index(request):
-    if 'credentials' not in request.session:
+    uid = request.user.id
+    user = UserModel.objects.filter(pk=uid).first()
+    if not user:
         return redirect(reverse('authorize'))
+    if 'credentials' not in request.session:
+        get_access_token(request)
     cred = request.session['credentials']
+
     return HttpResponse(cred['access_token'])
 
 

+ 5 - 0
goauth/settings.py

@@ -105,3 +105,8 @@ STATIC_URL = '/static/'
 
 LOGIN_URL = '/admin/login'
 LOGIN_REDIRECT_URL = '/'
+
+
+# Google credentials
+CLIENT_ID = "734645063035-g7l3ntqfqc3b0q2bkil21lk0edt1gb32.apps.googleusercontent.com"
+CLIENT_SECRET = "brHZSIvHaXiYDli-ooReb-D4"