auth.py 808 B

12345678910111213141516171819202122232425262728
  1. import os
  2. import jwt
  3. from typing import Dict
  4. from opendevin.logging import opendevin_logger as logger
  5. JWT_SECRET = os.getenv("JWT_SECRET", "5ecRe7")
  6. def get_sid_from_token(token: str) -> str:
  7. """Gets the session id from a JWT token."""
  8. try:
  9. payload = jwt.decode(token, JWT_SECRET, algorithms=["HS256"])
  10. if payload is None:
  11. logger.error("Invalid token")
  12. return ""
  13. return payload["sid"]
  14. except Exception as e:
  15. logger.exception("Error decoding token: %s", e)
  16. return ""
  17. def sign_token(payload: Dict[str, object]) -> str:
  18. """Signs a JWT token."""
  19. # payload = {
  20. # "sid": sid,
  21. # # "exp": datetime.now(timezone.utc) + timedelta(minutes=15),
  22. # }
  23. return jwt.encode(payload, JWT_SECRET, algorithm="HS256")