โมเดลผู้ใช้และ authenticate()
ตรวจสอบข้อมูลรับรองด้วยผู้ใช้ในตัวระบบ
โมเดลผู้ใช้และ authenticate() เป็นบทเรียน Django Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Django Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณมีผู้ใช้อยู่แล้ว
Django มี โมเดลผู้ใช้แบบสมบูรณ์มาให้ตั้งแต่แรก คุณจึงไม่ต้องเขียนตารางบัญชีด้วยตนเอง โมเดลนี้เก็บชื่อผู้ใช้ รหัสผ่านที่แฮชแล้ว และข้อมูลอื่น ๆ 👤
ผู้ใช้อยู่ที่ใด
โมเดลนี้อยู่ใน django.contrib.auth ซึ่งเป็นแอปที่เปิดใช้งานในโครงการใหม่อยู่แล้ว เพียงนำเข้า ก็จะได้ชุดเครื่องมือยืนยันตัวตนทั้งหมด
from django.contrib.auth.models import Userฟิลด์สำคัญของผู้ใช้
ผู้ใช้แต่ละคนมี ชื่อผู้ใช้ รวมถึงอีเมล ชื่อ และนามสกุล ฟิลด์เหล่านี้คือข้อมูลทั่วไปที่คุณอ่านและแสดงในแอป
รหัสผ่านไม่เคยถูกเก็บเป็นข้อความธรรมดา
Django เก็บ ค่าแฮชของรหัสผ่านแต่ละรายการที่เติมเกลือแล้ว ไม่เก็บข้อความดิบ แม้แต่คุณซึ่งเป็นนักพัฒนาก็ไม่สามารถอ่านรหัสผ่านจริงของผู้ใช้ได้ 🔒
สร้างผู้ใช้อย่างปลอดภัย
ใช้ create_user เพื่อให้ระบบแฮชรหัสผ่านให้ การตั้งรหัสผ่านด้วยตนเองจะทำให้ถูกเก็บเป็นข้อความที่อ่านได้
User.objects.create_user(username="ada", password="secret123")ทำความรู้จัก authenticate()
ฟังก์ชัน authenticate() จะตรวจสอบชื่อผู้ใช้และรหัสผ่านกับฐานข้อมูลให้คุณ นี่คือหัวใจของขั้นตอนการเข้าสู่ระบบทุกแบบ
from django.contrib.auth import authenticateauthenticate() ทำงานอย่างไร
ส่งข้อมูลรับรองไปให้ฟังก์ชัน แล้วฟังก์ชันจะส่งคืน ออบเจ็กต์ผู้ใช้ที่ตรงกันเมื่อข้อมูลถูกต้อง คุณไม่ต้องเขียนการแฮชหรือการค้นหาด้วยตนเอง
user = authenticate(username="ada", password="secret123")เมื่อข้อมูลรับรองไม่ผ่าน
หากชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง authenticate() จะส่งคืน None ตรวจสอบค่านี้ก่อนเสมอที่จะถือว่าผู้ใช้เข้าสู่ระบบแล้ว
if user is None:
print("Invalid credentials")เฉพาะผู้ใช้ที่ใช้งานอยู่
แฟล็ก is_active ให้คุณปิดใช้งานบัญชีได้ โดยค่าเริ่มต้น authenticate() จะไม่ส่งคืนผู้ใช้ที่ไม่ได้ใช้งาน จึงป้องกันการเข้าสู่ระบบของบัญชีที่ถูกระงับ
เจ้าหน้าที่และผู้ใช้ระดับสูง
แฟล็กเพิ่มเติมสองรายการมีความสำคัญ ได้แก่ is_staff ที่ให้สิทธิ์เข้าถึงเว็บไซต์ผู้ดูแลระบบ และ is_superuser ที่ให้สิทธิ์ทั้งหมด ผู้ใช้ส่วนใหญ่ไม่มีแฟล็กทั้งสองรายการ
Authenticate ไม่ใช่การเข้าสู่ระบบ
โปรดจำไว้ว่า authenticate() เพียงตรวจสอบตัวตนเท่านั้น ฟังก์ชันนี้ไม่เริ่มเซสชัน ดังนั้นหลังเรียกใช้ ผู้ใช้ยังไม่ได้เข้าสู่ระบบ
ตรวจสอบอย่างรวดเร็ว
authenticate() ส่งคืนอะไรเมื่อรหัสผ่านไม่ถูกต้อง
ทบทวน: ผู้ใช้และตัวตน
คุณได้รู้จัก โมเดลผู้ใช้ในตัวของ Django และใช้ authenticate() เพื่อตรวจสอบข้อมูลรับรอง รหัสผ่านยังคงถูกแฮช และการตรวจสอบที่ไม่ผ่านจะส่งคืน None ✅
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “โมเดลผู้ใช้และ authenticate()” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “โมเดลผู้ใช้และ authenticate()” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Django Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “โมเดลผู้ใช้และ authenticate()”
ตรวจสอบข้อมูลรับรองด้วยผู้ใช้ในตัวระบบ คุณปฏิบัติ Django Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Django Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Django Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “โมเดลผู้ใช้และ authenticate()” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Django Academy นี้ได้ไหม
ได้ บทเรียน Django Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โมเดลผู้ใช้และ authenticate()
- login, logout และวิวการยืนยันตัวตน
- การลงทะเบียนด้วย UserCreationForm
- login_required และการปกป้องวิว