1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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
|