Запрос от приложения React на сервер Flask не включает файлы cookiePython

Программы на Python
Ответить
Anonymous
 Запрос от приложения React на сервер Flask не включает файлы cookie

Сообщение Anonymous »

Я пытаюсь отправить запрос на получение файлов cookie из моего приложения React на сервер Flask. Оба размещены локально и имеют разное происхождение.
Запрос от реакции:

Код: Выделить всё

export async function fetchUser() {
try {
const res = await fetch(`${BASE_URL}/user`, {
method: 'GET',
credentials: 'include',
});
if (res.ok) {
const data = await res.json();
return data.user; // or wtv format it is
} else {
const data = await res.json();
console.log(data)
return null
}
} catch (error) {
console.error(error);
return null
}

Приложение Flask:

Код: Выделить всё

app = Flask(__name__)
CORS(app, supports_credentials=True, resources={r"/*": {"origins": ['http://localhost:5173']}})

def token_required(f):
@wraps(f)
def decorated(*args, **kwargs):
token = request.cookies.get('token', 0)  # Get the token from cookies
print(token)
if token is 0:
return jsonify({'message': 'Token is missing!'}), 401
result = enc.validate_token(token)
if not result['success']:
return jsonify({'message': result['message']}), 401
identity = result['identity']
return f(identity, *args, **kwargs)
return decorated

@app.route("/user", methods=['GET'])
@token_required
def get_user(current_user):
if not current_user:
return jsonify({'error': 'User not found!'}), 404
return current_user

@app.route("/login", methods=['POST'])
def login():
data = request.get_json()
username = data['username']
password = data['password']
login = au.handle_login(username, password)
if login['success']:
response = make_response(jsonify({ 'success': login['success'], 'message': login['message'] }), 200)
response.set_cookie(
"token",
value=login['token'],
expires=login['expires'],
max_age=login['max_age'],
httponly=True,    # Prevent JavaScript access
secure=False,      # TRUE: Only over HTTPS in production
samesite="Lax" # STRICT: Protect against CSRF
)
return response, 200
return jsonify(login), 401

Файл cookie устанавливается с того же сервера Flask по другому маршруту, и на вкладке файлов cookie приложения показано, что он находится там с правильным токеном ключа. Я добавил учетные данные: 'include' в запрос и support_credentials=True в конфигурации CORS фляги, но в маршруте /user request.cookies.get('token' ) возвращает None.
Кажется, нет ничего неуместного, и у меня закончились идеи — если кто-нибудь может помочь разобраться, в чем дело, я буду очень благодарен

Подробнее здесь: https://stackoverflow.com/questions/792 ... de-cookies
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»