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
 |