การย้ายโปรเจกต์แบบค่อยเป็นค่อยไป: รวมโดเมนผ่านพร็อกซี
- ได้ตัดสินใจย้ายเทคสแต็กของบริการแอดมินภายในบริษัทจาก 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 ไปกับทุกคำขอโดยอัตโนมัติ
ยังไม่มีความคิดเห็น