【问题标题】:How can I set a persistent JWT token header in flask?如何在烧瓶中设置持久的 JWT 令牌标头?
【发布时间】:2019-07-18 00:21:40
【问题描述】:

如果没有 Javascript 的帮助,我似乎无法找到将 JWT 令牌设置为每个 HTTP 请求中的标头的方法。

目前我的应用程序设置为使用“set_access_cookies”和“unset_access_cookies”方法来跟踪会话。但是,仅取消设置 cookie 不会使 cookie 无效。因此,我想在标头中使用 JWT,以便可以使用 blacklist.add() 方法,因为 blacklist.add() 似乎无法从我的测试中查看 cookie。

我的登录功能:

@app.route('/v1/login', methods=['POST', 'GET'])
def auth_user():
    ''' auth endpoint '''
    if request.method == 'POST':
        data = validate_user(request.get_json())
        if data['ok']:
            data = data['data']
            user = mongo.db.users.find_one({'email': data['email']}, {"_id": 0})

            if user and flask_bcrypt.check_password_hash(user['password'], data['password']):
                access_token = create_access_token(identity=data)
                refresh_token = create_refresh_token(identity=data)

                resp = make_response(render_template('index.html'), 302)
                set_access_cookies(resp, access_token)
                return resp

            else:
                return jsonify({'ok': False, 'message': 'invalid username or password'}), 200
        else:
            return jsonify({'ok': False, 'message': 'invalid username or password'}), 200
    elif request.method == 'GET':
        return render_template('/api/v1/login.html')

我的注销功能:

@app.route('/v1/logout', methods=['POST'])
def logout():
    ''' logout user endpoint '''

    resp = jsonify({'logout': True})
    unset_jwt_cookies(resp)
    return resp, 200

这很好用,但是有没有一种简单的方法可以将 JWT 放置为持久标头?

【问题讨论】:

  • flask-jwt-extended 中的黑名单功能不关心令牌来自标头还是 cookie:flask-jwt-extended.readthedocs.io/en/latest/…
  • 好的,谢谢。我忘记在我的配置中设置“JWT_COOKIE_CSRF_PROTECT”,所以我的 POST 注销请求在被列入黑名单之前返回未经授权。

标签: flask flask-jwt-extended flask-jwt


【解决方案1】:

我忘记在我的配置中设置“JWT_COOKIE_CSRF_PROTECT”,所以我的 POST 注销请求在被列入黑名单之前返回未经授权。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-07
    • 2018-07-08
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 2021-07-06
    • 2013-09-13
    • 2020-07-11
    相关资源
    最近更新 更多