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 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()
호출하는 대신 단일 초대만 생성하려는 경우 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
파일을 편집할 수 있으며 이러한 메시지는 도어맨이 사용합니다. 독일어 번역을 배치할 수 있는 de
와 같은 /resources/lang/vendor/doorman
디렉토리에 messages.php
파일이 있는 추가 폴더를 생성하여 다른 언어에 대한 지원을 생성할 수 있습니다. 자세한 내용은 현지화 문서를 읽어보세요.
초대 코드를 사용하기 전에 확인하고 싶거나 양식 요청을 사용하는 경우 다음과 같이 확인할 수 있습니다.
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