1. import argparse
  2. import jwt
  3. import time
  4. def validate_token(token, secret):
  5. """
  6. Validates an authentication token.
  7. Args:
  8. token (str): The authentication token to validate.
  9. secret (str): The secret key used to sign the token.
  10. Returns:
  11. dict: A dictionary containing the decoded token data if valid,
  12. None otherwise.
  13. """
  14. try:
  15. # Decode the token
  16. decoded_token = jwt.decode(token, secret, algorithms=["HS256"])
  17. return decoded_token
  18. except jwt.ExpiredSignatureError:
  19. print("Token has expired.")
  20. return None
  21. except jwt.InvalidTokenError:
  22. print("Invalid token.")
  23. return None
  24. except jwt.DecodeError:
  25. print("Could not decode token.")
  26. return None
  27. except Exception as e:
  28. print(f"An unexpected error occurred: {e}")
  29. return None
  30. if __name__ == "__main__":
  31. parser = argparse.ArgumentParser(description="Validate authentication tokens.")
  32. parser.add_argument("token", help="The authentication token to validate.")
  33. parser.add_argument("secret", help="The secret key used to sign the token.")
  34. args = parser.parse_args()
  35. # Validate the token
  36. decoded_token = validate_token(args.token, args.secret)
  37. if decoded_token:
  38. print("Token is valid.")
  39. print(f"Decoded token: {decoded_token}")
  40. else:
  41. print("Token is invalid.")

Add your comment