利用可能なドキュメントは以下です:
Laravel 5 Very Basic AuthはLaravel標準のauth.basic
とは違い、実際のデータベースの情報を使うことなくBasic認証を追加します。
例えば、開発中のサイトにユーザーをアクセスさせたい時や、まだデータベースやモデルを用意していない時に使うと便利です。あなたのサイトがデータベースを利用していない場合でも、アクセスを制御することができます。
認証に失敗した場合には、"401 Unauthorized"のレスポンスを返します。
Basic認証は望まないユーザーからのアクセスを排除することができますが、ブルートフォース攻撃に対しては厳密には安全ではありません。もしこのパッケージをセキュリティのために単独で利用するのであれば、ログインの試行回数を制限するために、少なくともApacheかNginxのrate-limitersを確認するべきです。
Composer経由
$ composer require olssonm/l5-very-basic-auth
このパッケージのv4.* (for Laravel 5.5)以降では、サービスプロバイダーからパッケージを読み込むのに、パッケージのオートディスカバリーを使用しています。パッケージをインストールすると、以下のメッセージが表示されるはずです。
Discovered Package: olssonm/l5-very-basic-auth
もしも手動でプロバイダーに追加したい場合は、composer.jsonファイルでオートディスカバリーを切って、
"extra": {
"laravel": {
"dont-discover": [
"olssonm/l5-very-basic-auth"
]
}
},
(config/app.php
)のprovidersにプロバイダーを追加してください。
'providers' => [
Olssonm\VeryBasicAuth\VeryBasicAuthServiceProvider::class
]
$ php artisan vendor:publish
のコマンドを実行し、Provider: Olssonm\VeryBasicAuth\VeryBasicAuthServiceProvider
を選んで設定ファイルを公開してください。$ php artisan vendor:publish --provider="Olssonm\VeryBasicAuth\VeryBasicAuthServiceProvider"
でも設定ファイルを公開することができます。
very_basic_auth.php
のファイルがあなたのapp/config
ディレクトリにコピーされます。ここにusernameやpasswordなどの幾つかの設定を置くことができます。
デフォルトのパスワードはありません。 セキュリティのために(誰もが同じパスワードになってしまわないように)、インストール時にランダムなパスワードが設定されます。個別のパスワードを設定するためにもパッケージ設定の公開をして下さい。
very_basic_auth.php
ファイルでは、メッセージの代わりにカスタマイズしたビューを設定することができます。
// ユーザーがオプトアウトするか、キャンセルを押した場合に表示されるメッセージ
'error_message' => 'You have to supply your credentials to access this resource.',
// エラーメッセージの代わりにviewを使いたい場合は"error_view"のコメントアウトを外して下さい。
// この場合、あなたのデフォルトのレスポンスメッセージよりもエラービューが優先されます。
// 'error_view' => 'very_basic_auth::default'
error_view
のコメントアウトを外した場合、ミドルウェアは指定されたviewを探そうとします。このビュー名は通常と同じように.blade.php
の拡張子無しで設定してください。
以前のバージョンから2.1にアップグレードする場合、このkeyとvalueは公開された設定には存在しないので、自分自身で設定を追加する必要があります。
このミドルウェアはルートを保護するのにauth.very_basic
の短縮キーを使います。Route::group()
に適用して複数のルートを保護することもできますし、個別に保護するルートを選ぶこともできます。
グループを使う場合
Route::group(['middleware' => 'auth.very_basic'], function() {
Route::get('/', ['as' => 'start', 'uses' => 'StartController@index']);
Route::get('/page', ['as' => 'page', 'uses' => 'StartController@page']);
});
単独で使う場合
Route::get('/', [
'as' => 'start',
'uses' => 'StartController@index',
'middleware' => 'auth.very_basic'
]);
認証情報をルート上に記述することもできます。
Route::get('/', [
'as' => 'start',
'uses' => 'StartController@index',
'middleware' => 'auth.very_basic:username,password'
]);
Note: 認証情報をルート上に記述した場合、設定ファイルのvery_basic_auth.php
より優先されます。
$ composer test
または
$ phpunit
テストを実行する際は、Laravelは常にenvironmentの値を"testing"にします。testing
がvery_basic_auth.php
のenvs
配列内に存在することを確認して下さい。
MITライセンスです。 詳しくはこちらを見てください。License File
© 2024 Marcus Olsson.