アゴ乗せ日記

適当なポジティブ日記

Laravel6で簡単なBasic認証ページを作る

.htaccessみたいな感覚で簡単な認証ページが欲しい時のメモ

やること

  1. ライブラリ追加
  2. app.phpの編集
  3. very_basic_auth.phpを新規作成
  4. web.phpの編集

1. ライブラリを追加

$ composer require olssonm/l5-very-basic-auth:6.1

2. app.phpの編集

config/app.phpに以下を追記

   'providers' => [

        (省略)
        // 以下を追記
        Olssonm\VeryBasicAuth\VeryBasicAuthServiceProvider::class,
    ],

3. very_basic_auth.phpを新規作成

config/very_basic_auth.phpを新規作成

<?php

    /**
     * Configuration for the "HTTP Very Basic Auth"-middleware
     */
    return [
        'user'              => 'admin', // お好きなユーザ名
        'password'          => 'test', // お好きなパスワード

        // Environments where the middleware is active
        'envs'              => [
            'local',
            'dev',
            'prd',
            'stg',
            'test'
        ],

        // Message to display if the user "opts out"/clicks "cancel"
        'error_message'     => '認証が必要でっせ'
    ];

4. web.phpの編集

routes/web.phpにルートを追加

// 認証画面
Route::group(['middleware' => 'auth.very_basic', 'prefix' => 'auth'], function() {
  Route::get('/test', 'TestController@view');
});

(念のため)動作確認用のControllerとView

app/Http/Controllers/TestController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;


class TestController extends Controller
{
    public function view (Request $request, Response $response) 
    {
          return view('test');
    }
}

resources/views/test.blade.php

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1">
    <title>認証ページ</title>
</head>
<body>
認証成功です
</body>
</html>

確認

http://127.0.0.1:8000/auth/test

認証ダイアログ

キャンセルしてみる

認証キャンセル

ログイン成功

認証成功

おわり

手軽でよかったです。 以上!