Я создаю свое приложение, но не знаю, как истечь токен при выходе из системы.
@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():
"" "Как истечь токен здесь" ""