>  기사  >  PHP 프레임워크  >  Laravel의 권한 방법에 대해 이야기해 보겠습니다.

Laravel의 권한 방법에 대해 이야기해 보겠습니다.

PHPz
PHPz원래의
2023-04-19 10:07:46810검색

Laravel은 수많은 편리한 기능을 갖춘 매우 인기 있는 PHP 프레임워크입니다. 여기에는 "권한"이라는 기능이 포함되어 있습니다. Laravel에서 권한은 개발자가 애플리케이션에 대한 액세스 제어 시스템을 구축하는 데 도움이 되며, 승인된 사용자만 특정 API 엔드포인트, 페이지 또는 작업에 액세스할 수 있도록 보장합니다. 다음으로 Laravel의 허가 방법을 소개하겠습니다.

  1. 역할 및 권한

Laravel에서 권한과 역할은 관련된 개념입니다. 역할은 다양한 역할이 애플리케이션의 다양한 부분에 액세스할 수 있는 다양한 사용자 유형입니다. 권한은 사용자가 액세스할 수 있는 부분을 제어하는 ​​규칙을 나타냅니다.

Laravel에서는 명령줄 도구 artisan을 통해 역할을 생성할 수 있습니다. 예를 들어, 다음 artisan 명령을 사용하여 "Administrator"라는 역할을 생성할 수 있습니다:

php artisan make:role admin

마찬가지로 "Text Editor"라는 역할을 생성할 수 있습니다:

php artisan make:role editor

그런 다음 이러한 역할은 사용자에게 할당됩니다.

  1. Authorization

Laravel에서는 인증을 사용하여 애플리케이션의 다른 부분에 대한 사용자 액세스를 제한할 수 있습니다. 승인된 사용자만 특정 작업을 수행할 수 있도록 컨트롤러에서 승인을 정의할 수 있습니다.

예를 들어 관리자에게만 액세스를 허용하는 "AdminUsersController"라는 컨트롤러를 만들 수 있습니다.

php artisan make:controller AdminUsersController

다음으로 컨트롤러 생성자에서 인증 구성 요소를 정의해야 합니다.

public function __construct()
{
    $this->authorize('admin');
}

사용자가 이 컨트롤러에 액세스하려고 하면 예외가 발생합니다. Laravel의 ExceptionHandler에서 예외 처리기를 정의할 수 있습니다.

  1. 권한 테이블

Laravel에서는 애플리케이션 기능에 대한 권한을 저장하기 위해 "권한"이라는 테이블을 만들 수 있습니다. 다음 명령줄 도구 artisan을 사용하여 권한 테이블을 생성할 수 있습니다:

php artisan make:model Permission -m

이렇게 하면 "Permission"이라는 모델 파일과 이와 관련된 마이그레이션 파일이 생성됩니다.

모델 파일에는 역할과 관련된 권한을 빠르게 얻을 수 있는 "역할"이라는 메서드가 포함되어 있습니다.

public function roles()
{
    return $this->belongsToMany(Role::class);
}

그런 다음 모델 파일에서 원하는 수의 권한을 정의할 수 있습니다.

인증 규칙은 애플리케이션의 관리자가 명령줄에서 artisan을 실행하여 생성하고 관리할 수 있습니다. 다음으로 이러한 권한 부여 규칙을 실제로 적용하는 방법을 살펴보겠습니다.

  1. Authorization Facade

Laravel에서는 인증 Facade를 사용하여 인증 사용을 단순화할 수 있습니다. Facade를 사용하면 현재 로그인한 사용자가 작업이나 리소스에 액세스할 수 있는 권한이 있는지 쉽게 확인할 수 있습니다.

예를 들어, "Gate" 파사드를 사용하여 현재 사용자에게 "edit-post"라는 권한이 있는지 확인할 수 있습니다:

if (Gate::allows('edit-post', $post)) {
    // 用户有权编辑帖子
}

또한 "Gate" 파사드를 사용하여 애플리케이션을 지원하는 새로운 인증 규칙을 정의할 수도 있습니다. 특정 요구 사항:

Gate::define('update-post', function ($user, $post) {
    return $user->id === $post->user_id;
});

이 예에서는 게시물 소유자만이 게시물을 업데이트할 수 있는 권한을 갖도록 새 권한 부여 규칙을 정의합니다.

Laravel의 권한 시스템은 애플리케이션 개발자가 승인된 사용자가 액세스할 수 있는 섹션이나 작업을 쉽게 제어할 수 있는 매우 편리한 기능입니다. 역할과 권한을 사용하면 강력하고 복잡한 접근 제어 시스템을 쉽게 구축할 수 있습니다.

간단히 말하면 Laravel 프레임워크는 권한 관리를 구현하는 간단하고 강력한 방법을 제공하여 애플리케이션 개발자가 사용자 역할과 액세스 권한을 더 쉽게 정의하고 관리할 수 있도록 하여 전체 애플리케이션의 보안을 더 잘 제어할 수 있게 해줍니다.

위 내용은 Laravel의 권한 방법에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.