· 7 years ago · Nov 06, 2018, 02:18 AM
1from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
2from itsdangerous import SignatureExpired
3
4
5class JWT:
6
7 def __init__(self, secret_key, salt, expires):
8 self.secret_key = secret_key
9 self.salt = salt
10 self.expires = expires # 过期时间,å•ä½ä¸ºç§’
11
12 def gen_token(self, data):
13 '''生æˆjwt token'''
14 s = Serializer(secret_key=self.secret_key, salt=self.salt, expires_in=self.expires)
15 return s.dumps(data).decode('utf8')
16
17 def parse_token(self, token):
18 '''è§£æžjwt token'''
19 s = Serializer(secret_key=self.secret_key, salt=self.salt)
20 try:
21 data = s.loads(token)
22 except SignatureExpired as e:
23 raise JWTError('signature expired')
24 except:
25 raise JWTError('bad token')
26 return data
27
28
29class JWTError(Exception):
30
31 def __init__(self, msg):
32 self.msg = msg
33 super(JWTError, self).__init__(msg)