def refresh_all_tokens(): for name in login_N26: access_token = get_access_token_from_refresh_token(name) if access_token.is_invalid(): error(str(now()) + ' : Refresh failed for ' + name) pause_scheduler() return
def get_access_token_from_refresh_token(name): refresh_token = read_refresh_token(name) if refresh_token.is_invalid(): return InvalidToken() refresh_url = n26_url + '/oauth/token' values_token = { "grant_type": "refresh_token", 'refresh_token': refresh_token.value, 'username': login_N26[name].username, 'password': login_N26[name].password } headers_token = { 'Authorization': 'Basic bXktdHJ1c3RlZC13ZHBDbGllbnQ6c2VjcmV0' } response = json.loads( requests.post(refresh_url, data=values_token, headers=headers_token).content) try: refresh_token = response['refresh_token'] access_token = response['access_token'] save_refresh_token(name, refresh_token) return Token(access_token) except KeyError: error(str(now()) + ' : Refresh token failed for ' + name) info(response) return InvalidToken()
def get_token(name): tokens = get_tokens() tokens = tokens[tokens['issue_date'] > now() - timedelta_minutes(55)] valid_tokens = tokens[tokens['name'] == name] if valid_tokens.shape[0] > 0: return valid_tokens['token'].iloc[0] return get_new_token(tokens, name)
def get_new_token(tokens, name): token = _request_token(name) time_now = now() tokens = tokens.append( { 'name': name, 'token': token, 'issue_date': time_now }, ignore_index=True) tokens.to_csv(token_file, index=False) return token
def current_logging_filename(): return get_log_filename(now())