Doorman は、招待コードを使用して Laravel アプリケーションへのアクセスを制限する方法を提供します。
招待コード:
ララベル | ドアマン |
---|---|
5.x | 3.x |
6.x | 4.x |
7.x | 5.x |
8.x | 6.x |
9.x | 7.x |
10.x | 8.x |
11.x | 9.x |
Composer を使用してパッケージを取り込むことができます。
$ composer require " clarkeash/doorman=^9.0 "
次に、データベースを移行します。
$ php artisan migrate
引き換えが 1 つあり、有効期限のない単一の汎用招待コードを作成します。
Doorman:: generate ()-> make ();
それぞれ 1 回の引き換えが可能で有効期限のない一般的な招待コードを 5 つ作成します。
Doorman:: generate ()-> times ( 5 )-> make ();
10 回の引き換えと有効期限なしの招待を作成します。
Doorman:: generate ()-> uses ( 10 )-> make ();
無制限の引き換えと有効期限なしで招待を作成します。
Doorman:: generate ()-> unlimited ()-> make ();
特定の日付に有効期限が切れる招待を作成します。
$ date = Carbon:: now ( ' UTC ' )-> addDays ( 7 );
Doorman:: generate ()-> expiresOn ( $ date )-> make ();
14 日以内に期限切れになる招待を作成します。
Doorman:: generate ()-> expiresIn ( 14 )-> make ();
特定の人を招待します。
Doorman:: generate ()-> for ( ' [email protected] ' )-> make ();
あるいは、招待のコレクションを返すmake()
を呼び出す代わりに、1 つの招待だけを生成したい場合は、 once()
を呼び出すこともできます。
$ invite = Doorman:: generate ()-> for ( ' [email protected] ' )-> once ();
dd ( $ invite -> code );
redeem
メソッドを呼び出して招待を引き換えることができます。招待コードと、必要に応じて電子メール アドレスを提供します。
Doorman:: redeem ( ' ABCDE ' );
// or
Doorman:: redeem ( ' ABCDE ' , ' [email protected] ' );
ドアマンが招待コードを引き換えることができる場合は、引き換え回数が 1 つ増えますが、それ以外の場合は例外がスローされます。
InvalidInviteCode
がスローされます。ExpiredInviteCode
がスローされます。MaxUsesReached
招待コードがすでに最大回数使用されている場合にスローされます。NotYourInviteCode
は、招待の電子メール アドレスが引き換え時に提供されたものと一致するか、引き換え時に提供されなかった場合にスローされます。上記の例外はすべてDoormanException
拡張するため、アプリケーションが上記の例外に対して特別な操作を行う必要がない場合は、その例外をキャッチできます。
try {
Doorman:: redeem ( request ()-> get ( ' code ' ), request ()-> get ( ' email ' ));
} catch ( DoormanException $ e ) {
return response ()-> json ([ ' error ' => $ e -> getMessage ()], 422 );
}
check
メソッドを呼び出して招待を確認できます。招待コードと、必要に応じて電子メール アドレスを提供します。 (例外をスローする代わりにtrue
またはfalse
を返す点を除き、 redeem
メソッドと同じシグネチャを持ちます。
Doorman:: check ( ' ABCDE ' );
// or
Doorman:: check ( ' ABCDE ' , ' [email protected] ' );
ドアマンから返されるエラー メッセージを変更するには、次のように言語ファイルを公開する必要があります。
$ php artisan vendor:publish --tag=doorman-translations
言語ファイルは/resources/lang/vendor/doorman/en
にあり、そこでmessages.php
ファイルを編集でき、これらのメッセージはドアマンによって使用されます。他の言語のサポートを作成するには、 /resources/lang/vendor/doorman
ディレクトリにmessages.php
ファイルを含む追加のフォルダー (ドイツ語の翻訳を配置できるde
など) を作成します。詳細については、ローカリゼーション ドキュメントを参照してください。
招待コードを引き換えようとする前に招待コードを検証したい場合、またはフォームリクエストを使用している場合は、次のように検証できます。
public function store ( Request $ request )
{
$ this -> validate ( $ request , [
' email ' => ' required|email|unique:users ' ,
' code ' => [ ' required ' , new DoormanRule ( $ request -> get ( ' email ' ))],
]);
// Add the user to the database.
}
電子メール アドレスをコンストラクターに渡して、その電子メールに対してコードを検証する必要があります。コードがどの電子メールでも使用できることがわかっている場合は、パラメーターを空のままにすることができます。
まずパッケージ構成を公開します。
$ php artisan vendor:publish --tag=doorman-config
config/doorman.php
には次のように表示されます。
return [
' invite_table_name ' => ' invites ' ,
];
テーブル名を変更してから移行を実行すると、Doorman は新しいテーブル名を使用します。
使用済みおよび期限切れの招待を削除するには、 cleanup
コマンドを使用します。
$ php artisan doorman:cleanup