33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
| import os
 | |
| 
 | |
| from flask_oauthlib.client import OAuthRemoteApp
 | |
| 
 | |
| 
 | |
| CREDENTIALS_DIR = os.getenv('CREDENTIALS_DIR', '')
 | |
| 
 | |
| 
 | |
| class OAuthRemoteAppWithRefresh(OAuthRemoteApp):
 | |
|     '''Same as flask_oauthlib.client.OAuthRemoteApp, but always loads client credentials from file.'''
 | |
| 
 | |
|     def __init__(self, oauth, name, **kwargs):
 | |
|         # constructor expects some values, so make it happy..
 | |
|         kwargs['consumer_key'] = 'not-needed-here'
 | |
|         kwargs['consumer_secret'] = 'not-needed-here'
 | |
|         OAuthRemoteApp.__init__(self, oauth, name, **kwargs)
 | |
| 
 | |
|     def refresh_credentials(self):
 | |
|         with open(os.path.join(CREDENTIALS_DIR, 'authcode-client-id')) as fd:
 | |
|             self._consumer_key = fd.read().strip()
 | |
|         with open(os.path.join(CREDENTIALS_DIR, 'authcode-client-secret')) as fd:
 | |
|             self._consumer_secret = fd.read().strip()
 | |
| 
 | |
|     @property
 | |
|     def consumer_key(self):
 | |
|         self.refresh_credentials()
 | |
|         return self._consumer_key
 | |
| 
 | |
|     @property
 | |
|     def consumer_secrect(self):
 | |
|         self.refresh_credentials()
 | |
|         return self._consumer_secret
 |