Utils.py 795 B

123456789101112131415161718192021222324252627282930
  1. import json
  2. import base64
  3. import random
  4. def base64url_decode(base64_str):
  5. size = len(base64_str) % 4
  6. if size == 2:
  7. base64_str += '=='
  8. elif size == 3:
  9. base64_str += '='
  10. elif size != 0:
  11. raise ValueError('Invalid base64 string')
  12. return base64.urlsafe_b64decode(base64_str.encode('utf-8'))
  13. def parse_jwt(jwt_token):
  14. jwt_token_list = jwt_token.split('.')
  15. header = base64url_decode(jwt_token_list[0]).decode()
  16. payload = base64url_decode(jwt_token_list[1]).decode()
  17. return {
  18. 'header': json.loads(header),
  19. 'payload': json.loads(payload),
  20. 'signature': jwt_token_list[-1]
  21. }
  22. def generate_random_code(n):
  23. range_start = 10**(n-1)
  24. range_end = (10**n)-1
  25. return str(random.randint(range_start, range_end))