May*_*til 5 python jwt flask-jwt
我已经为用户身份验证生成了Flask-JWT令牌,但是在注销时我想使令牌无效。现在,允许注销后访问路由。
@app.route('/logout', methods=['POST'])
@jwt_required
def logout():
user = current_user
user.authenticated = False
db.session.commit()
logout_user()
return jsonify({'success': True})
Run Code Online (Sandbox Code Playgroud)
检查flask-jwt-extended。它支持扩展内置的黑名单令牌(并且仍然受到积极支持,与已放弃的烧瓶 jwt 不同)。
https://flask-jwt-extended.readthedocs.io/en/stable/blacklist_and_token_revoking/
正如已经回答的那样,黑名单是使 JWT 令牌失效的基本方法之一。但是,应该注意的是,列入黑名单的代币应保留在数据库或其他任何地方,直到其到期日,除非您出于某种原因需要保留所有代币。
此外,重要的是要使 JWT 令牌的有效时间尽可能短,这样在大多数情况下它们会很快自行失效flask-jwt
。例如,为令牌设置过期时间可能是有意义的 - 30 分钟,就像某些网站的会话超时一样(绝对不是几天和几个月等)。