2

一段时间以来,我一直在尝试使用登录表单,使用 Flask-JWT-Extended 创建 JWT,然后在通过检查时将其与重定向一起传递。

下面是一个非常简单的示例,但我得到了“无授权标头”作为回报,这让我认为它不会通过设置的标头?如果身份验证正常,我想保护将呈现模板的视图。

@app.route("/")
def index():
    return render_template("index.html")

@app.route('/login', methods=['POST'])
def login():
    username = request.form["username"]
    password = request.form["password"]

    if not username:
        return jsonify({"msg": "Missing username parameter"}), 400
    if not password:
        return jsonify({"msg": "Missing password parameter"}), 400

    if username != 'test' or password != 'test!':
        return jsonify({"msg": "Bad username or password"}), 401

    access_token = create_access_token(identity=username)
    response = redirect('http://127.0.0.1:5000/protected')
    response.headers["Authorization"] = f'Bearer {access_token}'
    return response

@app.route('/protected', methods=['GET'])
@jwt_required
def protected():
    current_user = get_jwt_identity()
    return jsonify(logged_in_as=current_user), 200
4

0 回答 0