flask JWT токен истекает проблема - PullRequest
0 голосов
/ 25 марта 2020

Я создаю свое приложение, но не знаю, как истечь токен при выходе из системы.

@app.route('/login')
def login():
    """This function is use to get login detail and apply encoding password"""
    auth = request.authorization
    print(auth)
    if not auth or not auth.username or not auth.password:
        return make_response('Could not verify', 401)

    user = User.query.filter_by(name=auth.username).first()

    if not user:
        return make_response('Could not verify', 401)

    if check_password_hash(user.password, auth.password):
        token = jwt.encode(
            {'public_id': user.public_id,
             'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=10)},
            app.config['SECRET_KEY'])

        return jsonify({'token': token.decode('UTF-8')})

    return make_response('Could not verify', 401)

моя функция декоратора токена, которая берет токен из заголовка запроса и затем декодирует его.

def token_generator(function):
    """ This function is use to generate token"""

    @wraps(function)
    def decorated(*args, **kwargs):
        token = None
        if 'token' in request.headers:
            token = request.headers['token']

        if not token:
            return jsonify({'message': 'Token Missing!', "status": "401"})

        try:
            token_generate = jwt.decode(token, app.config['SECRET_KEY'])
            current_user = User.query.filter_by(public_id=
                                                token_generate['public_id']).first()
        except:
            return jsonify({'message': 'Invalid token!', "status": "404"})

        return function(current_user, *args, **kwargs)

    return decorated

Это мой маршрут выхода из системы. Я хочу, чтобы срок действия моего токена истек, так что если я использую функцию токена-генератора, иначе он не будет успешным.

@app.route('/logout')
@token_generator
def logout():

"" "Как истечь токен здесь" ""

...