Przeglądaj źródła

Fix a bug :bug: in index view while token not refreshing

Mohidul Islam 5 lat temu
rodzic
commit
e4e1487331
2 zmienionych plików z 5 dodań i 5 usunięć
  1. 3 3
      gauth/utils.py
  2. 2 2
      gauth/views.py

+ 3 - 3
gauth/utils.py

@@ -6,8 +6,9 @@ CLIENT_SECRETS_FILE = "client_secrets.json"
 
 
 def has_expired(credentials):
-    expiry_time = credentials['access_token']
-    return str(timezone.datetime.now()) > expiry_time
+    expiry_time = credentials['expiry']
+    now = str(timezone.datetime.now())
+    return now > expiry_time
 
 
 def get_access_token(request):
@@ -21,7 +22,6 @@ def get_access_token(request):
     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,

+ 2 - 2
gauth/views.py

@@ -4,7 +4,7 @@ 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 .utils import get_access_token, has_expired
 
 from .models import UserModel
 
@@ -15,7 +15,7 @@ def index(request):
     user = UserModel.objects.filter(pk=uid).first()
     if not user:
         return redirect(reverse('authorize'))
-    if 'credentials' not in request.session:
+    if 'credentials' not in request.session or has_expired(request.session['credentials']):
         get_access_token(request)
     cred = request.session['credentials']