Снова борюсь, пытаясь сделать мое первое приложение для колб, на этот раз (после того, как я создал все, что мне нужно, и все работает гладко) Я пытаюсь защитить некоторые конечные точки с помощью flask_jwt_extended
, но я не могу найти, как работать с ними на моих страницах, документация в основном об отображении сообщений JSON, а в некоторых руководствах используется почтальон, а в моем случае я использую шаблоны HTML.
Например, пользователь отправляет свои учетные данные со страницы входа в систему на эту конечную точку:
@app.route('/login', methods=['POST'])
def UserLogin():
data = parser.parse_args()
current_user = UserModel.find_by_username(data['username'])
if not current_user:
return {'message': 'User {} doesn\'t exist'.format(data['username'])}
if UserModel.verify_hash(data['password'], current_user.password):
access_token = create_access_token(identity = data['username'])
refresh_token = create_refresh_token(identity = data['username'])
resp = jsonify({'login': True}) #I just added this line from the documentation
set_access_cookies(resp, access_token) # and this one
set_refresh_cookies(resp, refresh_token) # and this one
return redirect(url_for('results'))
else:
return {'message': 'Wrong credentials'}
и, конечно, я добавил в декоратор @jwt_required
конечную точку results
:
@app.route('/result',methods = ['POST','GET'])
@jwt_required
def results():
temp={}
if request.method == 'POST':
# some code to fill temp with values
return render_template('result.html',data=temp)
Итак, я получаю {
"msg": "Missing cookie \"access_token_cookie\""
}
Очевидно, потому что я не отправляю jwt обратно, но если отправить его в операторе возврата, как я могу перенаправить пользователя на страницу, которую я хочу ??
И действительно Я использовал app.config['JWT_TOKEN_LOCATION'] = ['cookies']