𝟱 เทคนิคการใช้ Cookie เพื่อ Debug ปัญหา Auth

การ Debug ระบบ Authentication ในเว็บแอปนั้นใช้เวลานาน คุณมักจะเสียเวลาไปกับการสร้างบัญชีใหม่หรือการล้าง Cookie ทั้งหมดเพื่อทดสอบผู้ใช้งานประเภทต่างๆ

คุณสามารถทดสอบสถานะใดก็ได้โดยไม่ต้องไปยุ่งกับฐานข้อมูลของคุณ ลองใช้ 5 เทคนิคนี้เพื่อจัดการกับ Cookie โดยตรง

  1. เจาะจงลบเฉพาะ Cookie ที่ต้องการ แทนที่จะล้างทั้งหมด

การล้าง Cookie ทั้งหมดจะทำให้ session ของ dev server, local storage และโหมดทดสอบของ Stripe ของคุณหายไป แทนที่จะทำแบบนั้น ให้ลบเฉพาะ auth cookie เท่านั้น

ชื่อที่พบบ่อย ได้แก่:

  • session
  • sid
  • auth_token
  • _session_id

ใน DevTools ให้ไปที่ Application > Cookies > [your domain] จากนั้นคลิกขวาที่ session cookie แล้วเลือก Delete วิธีนี้จะรีเซ็ตสถานะผู้ใช้ให้เป็นแบบไม่ได้ล็อกอิน (logged-out) ในขณะที่ยังคงการตั้งค่าอื่นๆ ของคุณไว้เหมือนเดิม

  1. จำลองผู้ใช้ใหม่ด้วยการลบ onboarding flags

แอปต่างๆ ใช้ Cookie เพื่อติดตามว่าผู้ใช้ตั้งค่าเสร็จสิ้นแล้วหรือยัง ให้ลองมองหาชื่ออย่าง onboarding_complete หรือ first_visit

วิธีทดสอบ flow ของผู้ใช้ใหม่:

  • Export cookie ปัจจุบันของคุณ
  • ลบ onboarding flag ออก
  • รีโหลดหน้าเว็บ

วิธีนี้จะช่วยให้คุณทดสอบ UI ในส่วนต่างๆ ที่เปลี่ยนไปตามลำดับขั้นตอนได้โดยไม่ต้องสร้างบัญชีใหม่

  1. สลับบทบาทผู้ใช้ (User Roles) ภายใน 30 วินาทีด้วยการใช้ snapshots

หากแอปของคุณมีบทบาทที่แตกต่างกัน เช่น Admin หรือ Guest อย่าเสียเวลาล็อกอินและล็อกเอาต์ด้วยตัวเอง ให้ใช้ cookie snapshots แทน

  • ล็อกอินในฐานะ Admin จากนั้น Export cookie เป็น admin-session.json
  • ล็อกอินในฐานะ Regular User จากนั้น Export cookie เป็น user-session.json
  • หากต้องการสลับบทบาท เพียงแค่ Import ไฟล์ JSON เข้าไปแล้วรีโหลดหน้าเว็บ

เซิร์ฟเวอร์จะเชื่อถือ session token นั้น ซึ่งคุณกำลังใช้ session ที่ถูกต้องที่คุณสร้างไว้แล้วอยู่แล้ว ควรเก็บไฟล์ JSON เหล่านี้ไว้ในเครื่องของคุณเท่านั้น เพราะมันมี session token ที่สำคัญและเป็นความลับ

  1. ทดสอบ session ที่หมดอายุได้ทันที

ไม่ต้องรอเป็นชั่วโมงเพื่อให้ session หมดอายุ ให้เปลี่ยนวันหมดอายุด้วยตัวเอง

ใน DevTools ให้ดับเบิลคลิกที่คอลัมน์ Expires ของ session cookie ของคุณ แล้วตั้งค่าเป็นวันที่ในอดีต จากนั้นรีโหลดหน้าเว็บ คุณจะเห็นทันทีว่าเกิดอะไรขึ้นเมื่อ session หมดเวลา (times out)

  1. แก้ไขปัญหาการวนลูปของการรีไดเรกต์ตอนล็อกอิน (login redirect loops)

การวนลูปมักเกิดขึ้นเนื่องจาก Cookie ที่ล้าสมัย (stale) หรือมีรูปแบบผิดพลาด (malformed) คือมี session อยู่จริงแต่เซิร์ฟเวอร์ปฏิเสธมัน

วิธีหาสาเหตุ:

  • ระบุ Cookie ทั้งหมดที่เกี่ยวข้องกับ auth
  • ลบออกทีละตัว
  • รีโหลดหน้าเว็บหลังจากลบแต่ละครั้ง

ทันทีที่การวนลูปหยุดลง แสดงว่าคุณเจอ Cookie ที่มีปัญหาแล้ว วิธีนี้จะช่วยให้คุณระบุได้ว่าปัญหาเกิดจาก token ที่ไม่ถูกต้อง หรือเกิดจาก cookie domain ที่ไม่ถูกต้อง

วิธีเหล่านี้ใช้งานได้แม้กระทั่งกับ HttpOnly cookies เพราะ DevTools และส่วนขยายอย่าง CookieJar ทำงานในระดับเบราว์เซอร์

ที่มา: https://dev.to/ktg0215/5-cookie-tricks-for-debugging-auth-issues-in-chrome-no-more-creating-test-accounts-43b5