UrlTokenObject.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD019
  6. @NAME: AnsjerFormal
  7. @software: PyCharm
  8. @DATE: 2019/4/17 11:46
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: UidTokenObject.py
  12. @Contact:
  13. """
  14. from Ansjer.config import UID_TOKEN_KEY
  15. import jwt, time
  16. import logging
  17. class UrlTokenObject:
  18. def __init__(self, token=None):
  19. self.token = token
  20. self.Url = ''
  21. self.mci = ''
  22. self.user_id = ''
  23. self.uid = ''
  24. self.serial_number = ''
  25. self.old_version = ''
  26. self.new_version = ''
  27. self.flag = self.valid()
  28. def valid(self):
  29. try:
  30. token = self.token
  31. if self.token is None:
  32. logger = logging.getLogger('info')
  33. logger.info('token为空 = %s' % token)
  34. return False
  35. res = jwt.decode(token, '12345', algorithms='HS256')
  36. Url = res.get('Url', None)
  37. if not Url:
  38. logger = logging.getLogger('info')
  39. logger.info('Url为空 = %s' % Url)
  40. return False
  41. self.Url = Url
  42. self.mci = res.get('mci', 'null')
  43. self.user_id = res.get('user_id', 'null')
  44. self.uid = res.get('uid', 'null')
  45. self.serial_number = res.get('serial_number', 'null')
  46. self.old_version = res.get('old_version', 'null')
  47. self.new_version = res.get('new_version', 'null')
  48. except jwt.ExpiredSignatureError as e:
  49. print('UrlTokenObject_except_过期')
  50. logger = logging.getLogger('info')
  51. logger.info('rlTokenObject_except_过期')
  52. return False
  53. def generate(self, data={}):
  54. now_stamp = int(time.time())
  55. # print (now_stamp)
  56. # 过期时间为两天
  57. data['exp'] = 172800 + now_stamp
  58. token = jwt.encode(data, '12345', algorithm='HS256').decode('utf-8')
  59. self.token = token
  60. return token