File size: 734 Bytes
4304c6d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import jwt
from flask import current_app
from werkzeug.exceptions import Unauthorized


class PassportService:
    def __init__(self):
        self.sk = current_app.config.get('SECRET_KEY')
    
    def issue(self, payload):
        return jwt.encode(payload, self.sk, algorithm='HS256')
    
    def verify(self, token):
        try:
            return jwt.decode(token, self.sk, algorithms=['HS256'])
        except jwt.exceptions.InvalidSignatureError:
            raise Unauthorized('Invalid token signature.')
        except jwt.exceptions.DecodeError:
            raise Unauthorized('Invalid token.')
        except jwt.exceptions.ExpiredSignatureError:
            raise Unauthorized('Token has expired.')