Вот несколько методов реализации аутентификации с использованием PHP, а также примеры кода:
Метод 1: базовая аутентификация
Этот метод использует базовую аутентификацию HTTP, при которой имя пользователя и пароль передаются в заголовке «Авторизация» HTTP-запроса.
<?php
$username = $_SERVER['PHP_AUTH_USER'] ?? '';
$password = $_SERVER['PHP_AUTH_PW'] ?? '';
if ($username === 'admin' && $password === 'password') {
// Authentication successful
echo "Welcome, admin!";
} else {
// Authentication failed
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo "Authentication required";
exit;
}
?>
Метод 2. Аутентификация на основе форм.
В этом методе используется форма входа, в которой пользователь вводит свое имя пользователя и пароль, которые затем отправляются на сервер для проверки.
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
// Verify username and password
if ($username === 'admin' && $password === 'password') {
// Authentication successful
$_SESSION['username'] = $username;
echo "Welcome, admin!";
} else {
// Authentication failed
echo "Invalid username or password";
}
}
?>
Метод 3. Аутентификация на основе базы данных
Этот метод предполагает сохранение учетных данных пользователя в базе данных и их сравнение в процессе аутентификации.
<?php
// Assuming a database connection is already established
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
// Retrieve user from the database
$query = "SELECT * FROM users WHERE username = ?";
$stmt = $pdo->prepare($query);
$stmt->execute([$username]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) {
// Authentication successful
echo "Welcome, " . $user['username'] . "!";
} else {
// Authentication failed
echo "Invalid username or password";
}
?>