| 
									
										
										
										
											2023-07-11 15:21:20 +08:00
										 |  |  | import jwt | 
					
						
							| 
									
										
										
										
											2024-01-12 12:34:01 +08:00
										 |  |  | from werkzeug.exceptions import Unauthorized | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-30 11:15:26 +08:00
										 |  |  | from configs import dify_config | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-12 12:34:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-11 15:21:20 +08:00
										 |  |  | class PassportService: | 
					
						
							|  |  |  |     def __init__(self): | 
					
						
							| 
									
										
										
										
											2024-07-30 11:15:26 +08:00
										 |  |  |         self.sk = dify_config.SECRET_KEY | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-11 15:21:20 +08:00
										 |  |  |     def issue(self, payload): | 
					
						
							|  |  |  |         return jwt.encode(payload, self.sk, algorithm='HS256') | 
					
						
							| 
									
										
										
										
											2024-07-30 11:15:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-07-11 15:21:20 +08:00
										 |  |  |     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.') |