auth.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import json
  2. from fastapi import Depends
  3. from fastapi.security import OAuth2PasswordBearer
  4. from app import schemas
  5. from app.utils.utils import decode_base64
  6. from configs.globals import g
  7. reuseable_oauth = OAuth2PasswordBearer(
  8. tokenUrl="/jpt/auth/login",
  9. scheme_name="JWT"
  10. )
  11. async def verify_super_admin(token: str = Depends(reuseable_oauth)) -> schemas.TokenData:
  12. token_data_str = decode_base64(token)
  13. token_data_dict = json.loads(token_data_str)
  14. token_data = schemas.TokenData(**token_data_dict)
  15. if token_data.role_id != '726a51e45b4d11edbb4809c4df301a':
  16. raise Exception("暂无权限")
  17. g.user_id = token_data.user_id
  18. g.project_id = token_data.project_id
  19. return token_data
  20. async def verify_special(token: str = Depends(reuseable_oauth)) -> schemas.TokenData:
  21. token_data_str = decode_base64(token)
  22. token_data_dict = json.loads(token_data_str)
  23. token_data = schemas.TokenData(**token_data_dict)
  24. if not token_data.role_id in ['726a51e45b4d11edbb4809c4df301a','9ff183445b4d11ed87db29f50d093a']:
  25. raise Exception("暂无权限")
  26. g.user_id = token_data.user_id
  27. g.project_id = token_data.project_id
  28. return token_data
  29. async def verify_users(token: str = Depends(reuseable_oauth)) -> schemas.TokenData:
  30. token_data_str = decode_base64(token)
  31. token_data_dict = json.loads(token_data_str)
  32. token_data = schemas.TokenData(**token_data_dict)
  33. g.user_id = token_data.user_id
  34. g.project_id = token_data.project_id
  35. return token_data