Sveltejs Academy · บทเรียน

เส้นทางที่มีการป้องกันใน Hook handle()

เปลี่ยนเส้นทางผู้ใช้ที่ยังไม่ได้รับการยืนยันตัวตนออกจากเส้นทางที่มีการป้องกันภายใน handle hook

บทเรียน 3 จาก 413 ขั้นตอน

เส้นทางที่มีการป้องกันใน Hook handle() เป็นบทเรียน Sveltejs Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Sveltejs Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Sveltejs Academy มีบทเรียนทั้งหมด 4 บทเรียน

ปกป้องที่เอดจ์

รวมการปกป้องเส้นทางไว้ที่ hook handle เพื่อให้มีแหล่งความจริงเพียงแห่งเดียว

ตรวจสอบข้อมูลเฉพาะคำขอ

หากคุณกำหนด event.locals.user ใน handle ให้ตรวจสอบค่านี้สำหรับเส้นทางที่ได้รับการปกป้อง

export async function handle({ event, resolve }) {
  event.locals.user = await getUser(event);
  if (event.url.pathname.startsWith("/admin") && !event.locals.user) {
    return new Response("Unauthorized", { status: 302, headers: { Location: "/login" } });
  }
  return resolve(event);
}

การเข้าถึงตามบทบาท

ตรวจสอบบทบาทของผู้ใช้เพื่อควบคุมการเข้าถึงส่วนต่าง ๆ

if (event.url.pathname.startsWith("/admin") && event.locals.user?.role !== "admin") redirect(...);

การสำรองในฟังก์ชันโหลด

ภายในฟังก์ชัน load ของ +page.server.js ให้เรียกใช้การเปลี่ยนเส้นทางหากไม่มี locals.user เพื่อความปลอดภัยเพิ่มเติม

เส้นทางสาธารณะเทียบกับเส้นทางส่วนตัว

ใช้ตัวจับคู่เส้นทางหรือขอบเขตเลย์เอาต์เพื่อแยกความแตกต่าง

หลีกเลี่ยงการตรวจสอบแต่ละหน้า

การตรวจสอบแบบรวมศูนย์ช่วยป้องกันไม่ให้พลาดเส้นทาง ซึ่งอาจทำให้ข้อมูลอ่อนไหวถูกเปิดเผย

URL สำหรับย้อนกลับ

เข้ารหัส URL เดิมเป็นพารามิเตอร์คำค้น เพื่อให้ผู้ใช้กลับไปยังหน้านั้นหลังเข้าสู่ระบบ

redirect(303, `/login?next=${encodeURIComponent(event.url.pathname)}`);

เส้นทาง API

ปกป้องปลายทาง API (+server.js) ด้วยตรรกะของ hook เดียวกัน

ประสิทธิภาพ

การตรวจสอบสิทธิ์ควรทำงานรวดเร็ว แคชข้อมูลผู้ใช้ต่อคำขอผ่าน locals

ความสอดคล้องของ SSR

การตรวจสอบสิทธิ์แบบรวมศูนย์ทำให้การทำงานสอดคล้องกันทั้งคำขอที่เรนเดอร์บนเซิร์ฟเวอร์และคำขอที่นำทางจากไคลเอนต์

การทดสอบ

การตรวจสอบสิทธิ์ที่อาศัย hook ทดสอบแยกเป็นส่วน ๆ ได้ง่ายกว่าการตรวจสอบที่กระจายอยู่ในแต่ละหน้า

ตรวจสอบอย่างรวดเร็ว

ควรทำการปกป้องเส้นทางที่ใด

สรุปทบทวน

รวมการปกป้องเส้นทางไว้ใน handle โดยตรวจสอบ locals.user และเปลี่ยนเส้นทางคำขอที่ไม่ได้รับอนุญาต

เริ่มต้นได้ฟรี

เรียนรู้ HTML ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
41
บทเรียน
163

คำถามที่พบบ่อย

บทเรียน “เส้นทางที่มีการป้องกันใน Hook handle()” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เส้นทางที่มีการป้องกันใน Hook handle()” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Sveltejs Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Sveltejs Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เส้นทางที่มีการป้องกันใน Hook handle()”

เปลี่ยนเส้นทางผู้ใช้ที่ยังไม่ได้รับการยืนยันตัวตนออกจากเส้นทางที่มีการป้องกันภายใน handle hook คุณปฏิบัติ Sveltejs Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Sveltejs Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Sveltejs Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “เส้นทางที่มีการป้องกันใน Hook handle()” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Sveltejs Academy นี้ได้ไหม

ได้ บทเรียน Sveltejs Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เซสชันที่ใช้คุกกี้
  2. JWT ในคุกกี้ HTTP-Only
  3. เส้นทางที่มีการป้องกันใน Hook handle()
  4. OAuth ด้วย SvelteKit และ Lucia Auth
← กลับไปที่ Sveltejs Academy