fix: remove TokenCache.refresh_token()
Will be handled by requests_oauthlib via ConnectedApp.get_oauth2_session(user).
This commit is contained in:
parent
89c056998e
commit
72cd67b9bd
2 changed files with 12 additions and 33 deletions
|
|
@ -30,9 +30,19 @@ class ConnectedApp(Document):
|
|||
callback_path = '/api/method/frappe.integrations.doctype.connected_app.connected_app.callback/' + self.name
|
||||
self.redirect_uri = urljoin(base_url, callback_path)
|
||||
|
||||
def get_oauth2_session(self):
|
||||
def get_oauth2_session(self, user=None):
|
||||
token = None
|
||||
token_updater = None
|
||||
if user:
|
||||
token_cache = self.get_user_token(user)
|
||||
token = token_cache.get_json()
|
||||
token_updater = token_cache.update_data
|
||||
|
||||
return OAuth2Session(
|
||||
self.client_id,
|
||||
client_id=self.client_id,
|
||||
token=token,
|
||||
token_updater=token_updater,
|
||||
auto_refresh_url=self.token_uri,
|
||||
redirect_uri=self.redirect_uri,
|
||||
scope=self.get_scopes()
|
||||
)
|
||||
|
|
|
|||
|
|
@ -18,37 +18,6 @@ class TokenCache(Document):
|
|||
|
||||
raise frappe.exceptions.DoesNotExistError
|
||||
|
||||
def check_validity(self):
|
||||
if(self.get('__islocal') or (not self.access_token)):
|
||||
raise frappe.exceptions.DoesNotExistError
|
||||
|
||||
if not self.is_expired():
|
||||
return self
|
||||
|
||||
return self.refresh_token()
|
||||
|
||||
def refresh_token(self):
|
||||
app = frappe.get_doc("Connected App", self.connected_app)
|
||||
oauth = app.get_oauth2_session()
|
||||
new_token = oauth.refresh_token(
|
||||
app.token_uri,
|
||||
client_secret=app.get_password('client_secret'),
|
||||
token=self.get_json()
|
||||
)
|
||||
|
||||
if new_token.get('access_token') and app.revocation_uri:
|
||||
# Revoke old token
|
||||
requests.post(
|
||||
app.revocation_uri,
|
||||
data=urlencode({'token': new_token.get('access_token')}),
|
||||
headers={
|
||||
'Authorization': 'Bearer ' + new_token.get('access_token'),
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
)
|
||||
|
||||
return self.update_data(new_token)
|
||||
|
||||
def update_data(self, data):
|
||||
self.access_token = data.get('access_token')
|
||||
self.refresh_token = data.get('refresh_token')
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue