انتقل إلى محتوى الدرس

Fetching User and Verifying Password Hash جلب المستخدم بالبريد والتحقق من التشفير

نفّذ نظام تسجيل دخول آمن والتحقق من الهوية وتجديد الجلسة وحراس حماية الصفحات وميزة تذكرني وتسجيل الخروج النظيف في PHP 8.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

لمصادقة المستخدم، اجلب السجل المطابق للبريد الموحد عبر استعلام PDO محضر، ومرر التجزئة المخزنة إلى الدالة password_verify($inputPassword, $user["password_hash"]).

  • لا تضع كلمة المرور أبداً داخل شرط WHERE في SQL؛ بل اجلب السجل بالبريد أولاً ثم تحقق من التجزئة في PHP.
  • تستخرج دالة password_verify() الملح وخوارزمية التجزئة من النص المخزن تلقائياً.
  • افحص password_needs_rehash() بعد نجاح الدخول لترقية معامل التكلفة القديم تلقائياً.

ترجع password_verify() القيمة true عندما تتطابق كلمة المرور المدخلة مع التجزئة المخزنة.

مخطط توضيحي: محاكي تسجيل الدخول وتدوير الجلسة وحارس حماية الصفحات في PHP 8
PHP
<?php

$storedUser = [
    'id' => 42,
    'email' => '[email protected]',
    'password_hash' => password_hash('Correct#Pass9', PASSWORD_DEFAULT),
];

$inputPass = 'Correct#Pass9';
if ($storedUser && password_verify($inputPass, $storedUser['password_hash'])) {
    echo "Authenticated User ID: {$storedUser['id']}\n";
}