PHPのマイクロフレームワーク「Slim3」でbasic認証を追加する

Slim3でBasic認証ページを用意したい場合、slim-basic-authを使えば簡単に実装することが出来ます。

slim-basic-authのインストール方法

composer経由でインストールします。

composer require tuupola/slim-basic-auth

その後、以下のコードを記述すればOKです。Slim-Skeletonの場合は、/src/middleware.php に書くのが良いと思います。

$app = new \Slim\App;

$app->add(new \Slim\Middleware\HttpBasicAuthentication([
    "path" => "/admin",
    "secure" => false,
    "users" => [
        "user" => "pass"
    ]
]));

上記の場合、/admin 以下がBasic認証になります。user と pass に任意の文字列を設定して完了です。

なお、secureをfalseにするとSSLじゃなくても動きます。

また、認証に失敗した場合に何か処理をさせたい場合は、errorに書けばOKです。

$app->add(new \Slim\Middleware\HttpBasicAuthentication([
    "path" => "/admin",
    "secure" => false,
    "users" => [
        "user" => "pass"
    ],
    "error" => function ($request, $response, $arguments) {
        // 処理を書く
        return $response->write("認証失敗");
    }
]));

簡単に認証ページを作りたい場合に使えますね。