from django.utils import timezone from .views import CLIENT_SECRETS_FILE from requests import post from .models import UserModel def has_expired(credentials): expiry_time = credentials['access_token'] return timezone.datetime.now() > expiry_time def get_access_token(request): uid = request.user.id user = UserModel.objects.filter(pk=uid) 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 params = { "grant_type": "refresh_token", "client_id": client_id, "client_secret": client_secret, "refresh_token": refresh_token } response = post(token_uri, data=params).json() access_token = response['access_token'] expires_in = response['expires_in'] expired_at = timezone.datetime.now() + timezone.timedelta(seconds=expires_in) expiry = str(expired_at) credentials = { 'access_token': access_token, 'expiry': expiry } request.session['credentials'] = credentials return response.access_token