php_認証と認可

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>

投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です