예제 #1
0
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
예제 #2
0
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()
예제 #3
0
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)
예제 #4
0
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
예제 #5
0
파일: logging.py 프로젝트: dolitham/arlo
def current_logging_filename():
    return get_log_filename(now())