auth.py 807 B

12345678910111213141516171819202122232425262728
  1. import os
  2. import jwt
  3. from typing import Dict
  4. from opendevin.logger 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')