註釋我使用的燒瓶JWT擴展庫來用於與下列路線的API提供授權:燒瓶路由請求授權報頭時不與jwt_required
@app.route('/<string:stage>/api/v2.0/unauth/token', methods=['POST'])
def get_token(stage):
username = request.json['username']
password = request.json['password']
user = get_user(username)
if user and user.password == password:
return jsonify({'access_token': create_access_token(identity=username)}), 200
else:
abort(401)
當我進行以下CURL請求
curl -H "Content-Type: application/json" -X POST -d '{"username":"android", "password":"59a07c1a-0ec9-41a0-9b96-2ff196f35f0c"}' http://0.0.0.0:5000/staging/api/v2.0/unauth/token
服務器儘管事實上噸,
{
"msg": "Missing Authorization Header"
}
響應這裏沒有jwt_required
註釋get_token
函數。我知道傳遞給請求的用戶名和密碼是有效的,從get_user
調用返回的對象是有效的,其他非jwt_required註釋和jwt_required註釋的路由按預期工作。我嘗試重命名端點,甚至將它移到代碼中,但是無濟於事。這怎麼解決?
您確定沒有其他路線符合您的要求嗎? –
我是。搜索'token'只會提取這個函數,並且改變路由的名字也不能解決問題。 – sjyn
單靠這一點並不多,因爲它可以被解釋爲一個論點。我建議在'flask shell'中運行'app.url_map.match(「/ staging/api/v2.0/unauth/token」,method =「POST」)'並且看看它出現了什麼。 –