utils.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from django.utils import timezone
  2. from requests import post
  3. from django.conf import settings
  4. from .models import UserModel
  5. def has_expired(credentials):
  6. expiry_time = credentials['expiry']
  7. now = str(timezone.datetime.now())
  8. return now > expiry_time
  9. def get_access_token(request):
  10. uid = request.user.id
  11. user = UserModel.objects.filter(pk=uid).first()
  12. if user:
  13. refresh_token = user.refresh_token
  14. else:
  15. return None
  16. client_id = settings.CLIENT_ID
  17. client_secret = settings.CLIENT_SECRET
  18. token_uri = settings.TOKEN_URI
  19. params = {
  20. "grant_type": "refresh_token",
  21. "client_id": client_id,
  22. "client_secret": client_secret,
  23. "refresh_token": refresh_token
  24. }
  25. response = post(token_uri, data=params).json()
  26. access_token = response['access_token']
  27. expires_in = response['expires_in']
  28. expired_at = timezone.datetime.now() + timezone.timedelta(seconds=expires_in)
  29. expiry = str(expired_at)
  30. credentials = {
  31. 'access_token': access_token,
  32. 'expiry': expiry
  33. }
  34. request.session['credentials'] = credentials
  35. return response['access_token']