YII는 authManager
구성 요소를 통해 강력하고 유연한 RBAC (역할 기반 액세스 제어) 구현을 제공합니다. 이 구성 요소를 사용하면 역할, 권한을 정의하여 사용자에게 할당하여 응용 프로그램의 다른 부분에 대한 액세스를 효과적으로 제어 할 수 있습니다. 핵심 프로세스에는 다음과 같은 단계가 포함됩니다.
config/main.php
또는 config/web.php
)에서 authManager
구성 요소를 구성해야합니다. 일반적으로 DbManager
(데이터베이스의 영구 스토리지) 또는 PhpManager
(PHP 파일의 역할 및 권한 저장, 소규모 애플리케이션에 적합) 중에서 선택합니다. DbManager
는 일반적으로 확장 성과 지속성으로 선호됩니다. 다음은 DbManager
사용하는 예입니다.<code class="php">'components' => [ 'authManager' => [ 'class' => 'yii\rbac\DbManager', ], ],</code>
authManager
사용하여 역할 및 권한을 만듭니다. 역할은 비슷한 액세스 권한을 가진 사용자 그룹을 나타내며 권한은 사용자가 수행 할 수있는 특정 조치를 나타냅니다. 프로그래밍 방식으로 만들거나 명령 줄 도구를 사용하여 만들 수 있습니다. 예를 들어:<code class="php">// Creating a role $auth = Yii::$app->authManager; $adminRole = $auth->createRole('admin'); $auth->add($adminRole); // Creating a permission $createPostPermission = $auth->createPermission('createPost'); $createPostPermission->description = 'Create a new post'; $auth->add($createPostPermission); // Assigning a permission to a role $auth->addChild($adminRole, $createPostPermission);</code>
<code class="php">// Assigning the 'admin' role to a user with ID 1 Yii::$app->authManager->assign($adminRole, 1);</code>
can()
메소드를 사용하여 특정 조치 또는 리소스에 액세스하기 전에 사용자가 필요한 권한이 있는지 확인하십시오.<code class="php">if (Yii::$app->user->can('createPost')) { // Allow user to create a post } else { // Deny access }</code>
DbManager
사용하여 지속성 및 확장 성을 사용하십시오.효과적인 사용자 권한 및 역할의 효과적인 관리는 잘 구조화 된 접근 방식이 필요합니다.
DbManager
사용하는 경우 데이터베이스가 올바르게 안전하여 역할 및 권한 데이터에 대한 무단 액세스를 방지하도록하십시오.위 내용은 YII에서 역할 기반 액세스 제어 (RBAC)를 구현하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!