"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا لا يرسل Fastapi الخلفية ملفات تعريف الارتباط للرد على الواجهة الأمامية؟

لماذا لا يرسل Fastapi الخلفية ملفات تعريف الارتباط للرد على الواجهة الأمامية؟

نشر في 2025-05-01
تصفح:582

Why Doesn't My FastAPI Backend Send Cookies to My React Frontend?

ومع ذلك ، فقد أبلغ بعض المستخدمين عن مشكلات مع Fastapi عدم إرجاع ملفات تعريف الارتباط إلى رد فعل تطبيقات الواجهة الأمامية.

مشكلة def user_login (الاستجابة: الاستجابة ، اسم المستخدم: str = form () ، كلمة المرور: str = form () ، db: session = يعتمد (get_db)) -> dict: # عمليات قاعدة البيانات المحذوفة للإيجاز Access_token = create_access_token (data = {"sub": user.mobile_number}) استجابة. إرجاع {"الحالة": "النجاح"}

عند إرسال طلب تسجيل الدخول من Swagger UI ، يظهر ملف تعريف الارتباط في رؤوس الاستجابة. ومع ذلك ، من تطبيق React ، لا يتم إرجاع أي ملف تعريف ارتباط. تم استلامها.

قم بتعيين ملف تعريف الارتباط بشكل صحيح باستخدام استجابة. corsmiddleware.

في تطبيق React ، قم بتعيين مع ذلك: صواب في Axios يطلب إرسال ملفات تعريف الارتباط.

الإعداد:

@router.post("/login")
def user_login(response: Response, username: str = Form(), password: str = Form(), db: Session = Depends(get_db)) -> dict:
    # Database operations omitted for brevity
    access_token = create_access_token(data={"sub": user.mobile_number})
    response.set_cookie(key="fakesession", value="fake-cookie-session-value")
    return {"status": "success"}

في رد الفعل ، قم بتعيين مع uScredentials: صحيح في طلبات axios. الأصول المسموح بها لمنع الوصول غير المصرح به إلى ملفات تعريف الارتباط. افتراضيًا ، يُسمح فقط ببعض أنواع الاتصال في طلبات CORS دون بيانات اعتماد ، باستثناء ملفات تعريف الارتباط.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3