一段时间以来,我一直在尝试使用登录表单,使用 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