2016-08-16 7 views
0

프론트 엔드에 rbac을 구현하고 백엔드를 별도로 구현하고 싶습니다. 나는 백엔드에서 관리자를위한 테이블을 가지고 있으며 관리자 사용자는이 테이블에서 작업한다. 또한 일반 사용자를위한 테이블이며이 테이블과 함께 작동합니다 (로그인, 가입 등).프론트 엔드에 yii2-rbac을 구현하고 백엔드를 어떻게 분리 할 수 ​​있습니까?

rbac 관련 테이블 (auth_assignment)의 'user_id'필드는 다른 테이블 (user 또는 admin)의 값이어야하며 admin 테이블과 users 테이블에서 값을 가져올 수 없습니다.

프론트 엔드와 백엔드에 대해 rbac을 별도로 구현할 수 있습니까? 예 인 경우 어떻게합니까?

답변

0

그것은 가능하다. RBAC DbManager 테이블은 두 개의 RBAC 구성 요소 (하나는 프런트 엔드 용이고 다른 하나는 백엔드 용)를 다른 테이블과 함께 준비 할 수 있도록 구성 할 수 있습니다.

public $assignmentTable = '{{%auth_assignment}}'; 
+0

답변을 주셔서 감사합니다.하지만이 속성은 어디에 있습니까? 파일은 무엇입니까? –

+1

네임 스페이스'yii \ rbac \ DbManager' -'\ vendor \ yiisoft \ yii2 \ rbac \ DbManager.php' – Bizley

0

이 링크를 확인하십시오. RBAC에 매우 유용합니다.

https://github.com/yiisoft/yii2/blob/master/docs/guide/security-authorization.md

RBAC의 componet은 DB에 기본이 당신이 일반적인 모델을 사용하고 관련 DB 테이블을 공유하는 일반적 경우 .. 일반적인 부분에 기지 ..

당신은 구성 요소 섹션에서이 요소를 선언 할 수 있습니다 cofig 영역에서 main.php를 실행하고 공통 영역에서이 작업을 수행하면이 구성 요소가 환경 (프론트 엔드, 백엔드)간에 올바르게 공유됩니다.

예 : 일반/설정/main.php

'components' => [ 
    ..... 
    'authManager' => [ 
     'class' => 'yii\rbac\DbManager', 
     'cache' => 'cache', 
      .... 
    ], 

가 자연스럽게 프론트 엔드와 백엔드간에 공유 할 수있는이 평균 ..

+0

이 경우 설정에서이 RBAC 할당에 대한 두 개의 서로 다른'user' 테이블을 사용해야하기 때문에 공유 할 수 없습니다 :

은 과제에 대한 속성입니다. – Bizley