123456789101112131415161718192021222324252627282930313233343536373839404142 |
- from django.utils import timezone
- 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 str(timezone.datetime.now()) > expiry_time
- def get_access_token(request):
- uid = request.user.id
- user = UserModel.objects.filter(pk=uid).first()
- if user:
- refresh_token = user.refresh_token
- else:
- return None
- 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,
- "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']
|