Python: Flask готовить ie срок годности не истекает - PullRequest
0 голосов
/ 02 марта 2020

У меня есть простая тестовая страница входа в систему, которая генерирует токен JWT и сохраняет токен в файле Cook ie. Время выдоха ie установлено на 15 секунд, только для тестов. Маркер JWT имеет переменную expiresIn, которая также «устанавливает» время истечения для пользователя, но есть одна проблема. После получения повара ie я перехожу на домашнюю страницу, но срок действия повара ie не истекает через 15 секунд.

Код:

def token_required(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        token = None

        if 'session_token' in request.cookies:
            token = request.cookies['session_token']
            response, message = Token_utilities.request_scanner(token)
            if response is True:
                return f(message, *args, **kwargs)
            else:
                print(request.cookies['session_token'])
                return jsonify({"status": message})
        else:
            return jsonify({"status": "no_token"})

    return decorated

@app.route('/login/<username>', methods=['GET'])
def login(username):
    if request.method == 'GET':
        # Token Expiration w cookie
        current_user = User.query.filter_by(username=username).first()
        if not current_user:
            return jsonify({'status': 'noacc'})
        print(current_user.lastAccessedTime)

        current_user.lastAccessedTime = datetime.datetime.now().strftime('%b %d %Y %H:%M.%S')
        lastAccessedTime_object = datetime.datetime.strptime(current_user.lastAccessedTime, '%b %d %Y %H:%M.%S')
        current_user_token_valid = lastAccessedTime_object + datetime.timedelta(seconds=30)

        print('New token expires at - ', current_user_token_valid.strftime("%b %d %Y %H:%M.%S"))

        token = jwt.encode({'expiresIn': str(current_user_token_valid.strftime("%b %d %Y %H:%M.%S")),
                    'public_id': current_user.public_id,
                    # Profile
                    'first_name': current_user.first_name,
                    'last_name': current_user.last_name,
                    'username': current_user.username,
                    'role': current_user.role},
                    app.config['SECRET_KEY'])
        print('ok')
        resp = make_response({"status": "token_created"})
        resp.set_cookie('session_token', token.decode('UTF-8'), expires=datetime.datetime.now() + datetime.timedelta(seconds=15))
        print('logged in as', current_user.username)
        return resp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...