|  |  |  | import json
 | 
					
						
							|  |  |  | import os
 | 
					
						
							|  |  |  | from openpilot.system.hardware.hw import Paths
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MissingAuthConfigError(Exception):
 | 
					
						
							|  |  |  |   pass
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_token():
 | 
					
						
							|  |  |  |   try:
 | 
					
						
							|  |  |  |     with open(os.path.join(Paths.config_root(), 'auth.json')) as f:
 | 
					
						
							|  |  |  |       auth = json.load(f)
 | 
					
						
							|  |  |  |       return auth['access_token']
 | 
					
						
							|  |  |  |   except Exception:
 | 
					
						
							|  |  |  |     return None
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def set_token(token):
 | 
					
						
							|  |  |  |   os.makedirs(Paths.config_root(), exist_ok=True)
 | 
					
						
							|  |  |  |   with open(os.path.join(Paths.config_root(), 'auth.json'), 'w') as f:
 | 
					
						
							|  |  |  |     json.dump({'access_token': token}, f)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def clear_token():
 | 
					
						
							|  |  |  |   try:
 | 
					
						
							|  |  |  |     os.unlink(os.path.join(Paths.config_root(), 'auth.json'))
 | 
					
						
							|  |  |  |   except FileNotFoundError:
 | 
					
						
							|  |  |  |     pass
 |