jwt.py 949 B

12345678910111213141516171819202122232425262728293031
  1. import jwt
  2. import datetime
  3. from jwt import exceptions
  4. from django.conf import settings
  5. JWT_SALT = "ds()udsjo@jlsdosjf)wjd_#(#)$"
  6. def create_token(payload):
  7. headers = {
  8. "type": "jwt",
  9. "alg": "HS256"
  10. }
  11. payload['exp'] = datetime.datetime.utcnow() + datetime.timedelta(seconds=settings.JWT_TIME)
  12. result = jwt.encode(payload=payload, key=JWT_SALT, algorithm="HS256", headers=headers)
  13. return result
  14. def parse_payload(token):
  15. result = {"status": False, "data": None, "error": None}
  16. try:
  17. verified_payload = jwt.decode(token, JWT_SALT, algorithms="HS256", verify=True)
  18. result["status"] = True
  19. result['data'] = verified_payload
  20. except exceptions.ExpiredSignatureError:
  21. result['err'] = 'Token Expired'
  22. except jwt.DecodeError:
  23. result['err'] = 'Token Authentication Failed'
  24. except jwt.InvalidTokenError:
  25. result['err'] = 'Illegal Token'
  26. return result