内容へ移動
ゆーものメモ帳
ユーザ用ツール
管理
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
プログラム言語:php:laravel:basic認証
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 【Laravel】Basic 認証 ====== 参考:[[https://taka4thz.com/laravel-basic-auth/|【Laravel】Basic認証を実装する方法]] Laravel のバージョン違いによるものか、上記参考サイトの方法ではエラーが出たため「Laravel Framework 7.19.1」でのやり方を残しておきます。 <code> php artisan -V Laravel Framework 7.19.1 </code> といっても、原因は「routes/web.php」への middleware の指定の仕方でしたので、そこだけ書き方を変えれば OK でした。 以下、手順。 ===== Basic 認証のミドルウェア作成 ===== <code> php artisan make:middleware BasicAuthMiddleware </code> 作成された app/Http/Middleware/BasicAuthMiddleware.php の中身を以下のように書き換えます。\\ handle 関数の中身だけコピペで OK! <code> <?php namespace App\Http\Middleware; use Closure; class BasicAuthMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { switch (true) { case !isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']): case $_SERVER['PHP_AUTH_USER'] !== 'ユーザ名': case $_SERVER['PHP_AUTH_PW'] !== 'パスワード': header('WWW-Authenticate: Basic realm="Enter username and password."'); header('Content-Type: text/plain; charset=utf-8'); die('このページを見るにはログインが必要です'); } return $next($request); } } </code> ユーザ名とパスワードを直書きしてますが、環境によって変えたい場合は .env に、複数ユーザを作りたい場合は配列で持っておけばよいかと。 ===== 作成したミドルウェアを追加 ===== app/Http/Kernel.php の $routeMiddleware に以下を追加。 <code> protected $routeMiddleware = [ ... 略 ... 'basic.auth' => 'App\Http\Middleware\BasicAuthMiddleware', ]; </code> ===== ルーティングに Basic 認証を指定 ===== routes/web.php の該当ページに作成した Basic 認証のミドルウェアを追加する。 <code> Route::middleware('basic.auth')->group(function(){ Route::get('/', 'HomeController@home')->name('home'); }); </code> これで完了です。\\ 思った以上に簡単ですね。
プログラム言語/php/laravel/basic認証.txt
· 最終更新: 2022/05/23 11:22 by
humolife
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ