auth_user.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from exceptions import AuthException
  4. import urllib
  5. import hashlib
  6. from fastapi import Request
  7. from extensions import *
  8. class AuthUser:
  9. user_id: int
  10. user_name: str
  11. nick_name: str
  12. is_yzy_user: int
  13. def data_auth_sign(data):
  14. sorted(data.items(),key=lambda item:item[0],reverse=True)
  15. res = urllib.parse.urlencode(data)
  16. sha = hashlib.sha1(res.encode('utf-8'))
  17. encrypts = sha.hexdigest()
  18. return encrypts
  19. def get_auth_user(request: Request):
  20. try:
  21. auth = request.session.get('user_auth')
  22. if auth is not None:
  23. user_auth_sign = request.session['user_auth_sign']
  24. if user_auth_sign == data_auth_sign(auth):
  25. authUser = AuthUser()
  26. authUser.user_id = auth['user_id']
  27. authUser.user_name = auth['user_name']
  28. authUser.nick_name = auth['nick_name']
  29. authUser.is_yzy_user = int(auth['is_yzy_user'])
  30. return authUser
  31. except Exception as e:
  32. raise AuthException(str(e))
  33. return None