Laravel의 사용자 관리 및 권한 제어: 여러 사용자 및 역할 할당 구현

WBOY
풀어 주다: 2023-08-12 14:57:06
원래의
1111명이 탐색했습니다.

Laravel의 사용자 관리 및 권한 제어: 여러 사용자 및 역할 할당 구현

Laravel의 사용자 관리 및 권한 제어: 다중 사용자 및 역할 할당 구현

소개:

최신 웹 애플리케이션에서 사용자 관리 및 권한 제어는 매우 중요한 기능 중 하나입니다. 널리 사용되는 PHP 프레임워크인 Laravel은 여러 사용자 및 역할 할당에 대한 권한 제어를 구현하는 강력하고 유연한 도구를 제공합니다. 이 글에서는 Laravel에서 사용자 관리 및 권한 제어 기능을 구현하는 방법을 소개하고 관련 코드 예제를 제공합니다.

1. 설치 및 구성

먼저 Laravel에서 사용자 관리 및 권한 제어 기능을 구현하려면 Laravel Breeze와 Spatie Laravel Permission 두 가지 패키지를 설치하고 구성해야 합니다.

1.1 Laravel Breeze 설치

Laravel Breeze는 사용자 등록, 로그인, 로그아웃 및 기타 기능을 빠르게 구축하는 데 도움이 되는 경량 인증 시스템입니다. 먼저 명령줄에서 다음 명령을 실행하여 Laravel Breeze를 설치합니다.

composer require laravel/breeze --dev
로그인 후 복사

그런 다음 다음 명령을 실행하여 Laravel Breeze를 설치 및 구성합니다.

php artisan breeze:install
npm install
npm run dev
로그인 후 복사

1.2 Spatie Laravel Permission 설치

Spatie Laravel Permission은 사용자 관리를 위한 도구입니다. 권한 패키지는 역할 권한 부여 및 권한 관리 기능을 구현하는 데 도움이 됩니다. Spatie Laravel을 설치하려면 다음 명령을 실행하세요. 그런 다음 생성된 사용자 모델 파일에 다음 코드를 추가합니다.

composer require spatie/laravel-permission
php artisan vendor:publish --provider="SpatiePermissionPermissionServiceProvider"
php artisan migrate
로그인 후 복사

다음으로 생성된 데이터베이스 마이그레이션 파일에 다음 코드를 추가하여 사용자 테이블의 필드를 정의합니다.

php artisan make:model User -m
로그인 후 복사

마지막으로 다음 명령을 실행하여 데이터베이스 마이그레이션 실행:

use IlluminateFoundationAuthUser as Authenticatable;
use SpatiePermissionTraitsHasRoles;

class User extends Authenticatable
{
    use HasRoles;
    
    // 其他代码...
}
로그인 후 복사

2.2 등록 및 로그인

Laravel Breeze는 등록 및 로그인 기능을 제공하므로 해당 보기 파일에서만 이를 참조하면 됩니다. resources/views/auth 디렉터리에서 Register.blade.php 파일을 열고 다음 코드를 추가하세요:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}
로그인 후 복사

그런 다음 login.blade.php 파일에 다음 코드를 추가하세요:

php artisan migrate
로그인 후 복사

지금까지 완료했습니다 사용자 등록 및 로그인 기능을 제공합니다.

3. 역할 및 권한 제어

3.1 역할 및 권한 모델 만들기

먼저 명령줄에서 다음 명령을 실행하여 역할 및 권한 모델을 만듭니다.

<x-guest-layout>
    <x-auth-card>
        <x-slot name="logo">
            <a href="/">
                <x-application-logo class="w-20 h-20 fill-current text-gray-500" />
            </a>
        </x-slot>

        <div class="mb-4 text-sm text-gray-600">
            {{ __('This is a secure area of the application. Please confirm your password before continuing.') }}
        </div>

        <!-- 用户注册代码 -->

    </x-auth-card>
</x-guest-layout>
로그인 후 복사

그런 다음 생성된 역할 모델 파일에 다음 코드 :

<x-guest-layout>
    <x-auth-card>
        <x-slot name="logo">
            <a href="/">
                <x-application-logo class="w-20 h-20 fill-current text-gray-500" />
            </a>
        </x-slot>

        <!-- 用户登录代码 -->

    </x-auth-card>
</x-guest-layout>
로그인 후 복사

다음으로 생성된 권한 모델 파일에도 다음 코드를 추가합니다.

php artisan make:model Role
php artisan make:model Permission
로그인 후 복사

3.2 역할 및 권한 할당

사용자에게 역할 및 권한을 할당하려면 사용자에 해당 메서드를 작성해야 합니다. 컨트롤러 코드. app/Http/Controllers/Auth 디렉터리에서 RegisteredUserController.php 파일을 열고 store 메서드에 다음 코드를 추가합니다.

use SpatiePermissionModelsRole as BaseRole;

class Role extends BaseRole
{
    // 其他代码...
}
로그인 후 복사

위 코드에서는 insertRole 및 givePermissionTo 메서드를 통해 사용자에게 역할과 권한을 할당합니다. .

4. 권한 제어를 위해 미들웨어를 사용하세요

Laravel에서는 권한 제어를 위해 미들웨어를 사용할 수 있습니다. 먼저 app/Http/Kernel.php 파일에서 Spatie Laravel에서 제공하는 미들웨어를 등록합니다. '기사 작성' 권한이 있는 사용자만 이 경로에 액세스할 수 있습니다.

요약:

이 글에서는 Laravel에서 사용자 관리 및 권한 제어를 구현하는 방법을 소개합니다. Laravel Breeze 및 Spatie Laravel Permission과 같은 구성요소를 사용하여 사용자 등록, 로그인 및 역할 권한 제어 기능을 빠르게 구축할 수 있습니다. 이 문서가 여러 사용자 및 역할 할당에 대한 권한 제어를 구현하는 모든 사람에게 도움이 되기를 바랍니다.

위 내용은 Laravel의 사용자 관리 및 권한 제어: 여러 사용자 및 역할 할당 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!