13認証と認可
認証とは?
認証(Authentication)は、ユーザーが誰であるかを確認するプロセスです。一般的には、ユーザー名とパスワードを使用してユーザーの身元を確認します。
認証の実装例
以下は、簡単な認証システムの例です。
<?php
// セッションの開始
session_start();
// デモ用の固定ユーザー名とパスワード(実際のアプリケーションではデータベースを使用します)
$username = "admin";
$password = "password";
// フォームが送信されたときの処理
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// フォームから送信されたユーザー名とパスワードを検証
if ($_POST['username'] == $username && $_POST['password'] == $password) {
// ユーザー名とパスワードが一致する場合
// 認証成功をセッションに保存
$_SESSION['authenticated'] = true;
// 保護されたページにリダイレクト
header("Location: protected_page.php");
exit(); // スクリプトを終了
} else {
// ユーザー名またはパスワードが一致しない場合
// エラーメッセージを表示
echo "Invalid credentials.";
}
}
?>
<!-- ログインフォーム -->
<form method="post" action="">
Username: <input type="text" name="username" required><br>
Password: <input type="password" name="password" required><br>
<input type="submit" value="Login">
</form>認可とは?
認可(Authorization)は、認証されたユーザーが特定のリソースや機能にアクセスできるかどうかを判断するプロセスです。認証が成功した後に行われます。
認可の実装例
以下は、認証されたユーザーのみがアクセスできるページの例です。
<?php
// セッションの開始
session_start();
// 認証されているかどうかを確認
// セッション変数 'authenticated' がセットされていない、または 'authenticated' が true でない場合
if (!isset($_SESSION['authenticated']) || $_SESSION['authenticated'] !== true) {
// 認証されていない場合はログインページへリダイレクト
header("Location: login.php");
exit(); // スクリプトを終了
}
?>
<!-- 認証されたユーザーのみがアクセスできるコンテンツ -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Protected Page</title>
</head>
<body>
<h1>Protected Page</h1>
<p>Only authenticated users can see this page.</p>
</body>
</html>
コメントを残す