การย้ายโปรเจกต์แบบค่อยเป็นค่อยไป: รวมโดเมนผ่านพร็อกซี

  • ได้ตัดสินใจย้ายเทคสแต็กของบริการแอดมินภายในบริษัทจาก Next.js Page Router ไปเป็น App Router
  • ทีมเทคของบริษัทต้องการคงโค้ดแอป Page Router เดิมไว้ตามเดิม และค่อย ๆ ย้ายไปใช้ App Router ทีละหน้า ตั้งแต่หน้าที่สร้างใหม่
  • เพื่อทำเช่นนั้น จึงนำแอป Page Router เดิมและแอป App Router ใหม่ไป deploy แยกกันคนละโดเมน แล้ว รวมให้เป็นโดเมนเดียวด้วย Vercel Proxy
  • ผ่านการตั้งค่า Proxy เส้นทางทั้งหมดที่ขึ้นต้นด้วย /new จะถูก rewrite ไปยังแอปใหม่ และเส้นทางอื่นทั้งหมดจะถูก rewrite ไปยังแอปเดิม

เหตุผลที่การยืนยันตัวตนยังคงอยู่ได้ในทั้งสองแอป

  • อะไรคือเหตุผลที่ทำให้การยืนยันตัวตนยังคงอยู่ได้ในโปรเจกต์ใหม่ด้วย ไม่ใช่แค่ในแอปเดิม?
  • บริการแอดมินของบริษัทถูกสร้างด้วยวิธีการยืนยันตัวตนผ่าน session cookie
    • และเนื่องจากฝั่งแบ็กเอนด์ไม่ได้ตั้งค่า CORS จึงเข้าถึงคุกกี้ได้เฉพาะจากโดเมนเดียวกับเซิร์ฟเวอร์เท่านั้น
  • เมื่อมีหน้าเข้าสู่ระบบอยู่ในแอปเดิม แล้วเวลาที่แอปใหม่ส่งคำขอ API จะเกิดปัญหาการยืนยันตัวตนหรือไม่ เพราะเบราว์เซอร์อาจไม่สามารถส่ง session cookie ไปได้?
  • สรุปคือ ไม่มีปัญหา
  • เหตุผลก็คือ ได้รวมทั้งสองแอปให้เป็นโดเมน A เดียวผ่านการตั้งค่า Proxy
    • เมื่อเข้าสู่ระบบ เบราว์เซอร์จะบันทึกคุกกี้ไว้ในโดเมน A และหลังจากนั้นจะรวม session cookie ไปกับทุกคำขอโดยอัตโนมัติ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น