2017-01-13 6 views
0

고급 Yii2 템플릿을 사용하여 응용 프로그램을 개발하고 있습니다.전적으로 다른 두 프론트 엔드 사용자 Yii2 고급

이미 백엔드 및 프런트 엔드 사용자를 위해 분리 된 두 개의 세션이 있습니다. 내 main.php 파일은 다음과 같이이다 : 나는 초 별도의 프론트 엔드 사용자을 구현하려고 할 때이 문제에 직면하고있다

// frontend/config/main.php 
... 
'user' => [ 
    'identityClass' => 'common\models\User', 
    'enableAutoLogin' => true, 
], 
... 

// backend/config/main.php 
... 
'user' => [ 
    'identityClass' => 'backend\models\BEUser', 
    'enableAutoLogin' => true, 
], 
... 

. 현재 다른 사용자 모델로 로그인 할 때 일반 프론트 엔드 사용자로 로그인하고 있습니다.

RBAC를 사용하고 싶지 않습니다. 다른 두 종류의 사용자가 을 완전히 분리하기를 원하므로을 완전히 분리하십시오. 즉, 다른 데이터베이스 테이블, 다른 세션 이름, 다른 로그인 페이지 및 웹 사이트의 완전히 다른 부분 및 페이지에 대한 액세스를 의미합니다.

frontend/config/main.php에 별도의 "user2"항목을 추가하는 것으로 생각되지만 인터넷에서 비슷한 가이드를 찾을 수 없습니다. 그래서 나는 이것이 가능하지 않은 것으로 생각합니다.

의견이 있으십니까? 감사합니다. 난 정말이 테스트를하지 않은

+0

이유뿐만 아니라 두 번째 프론트 엔드를 추가하지? – topher

+0

나는 이것을 생각해 보았다. 그래도 그럴 가치가없는 것 같습니다. 두 번째 사용자는 하나 또는 두 개의 별도 페이지에만 필요합니다. 서로 다른 구성, 컨트롤러 등으로 별도의 프론트 엔드를 작성하는 것은 너무 많은 노력이 필요한 것 같습니다. 다른 방법이 있어야합니다. –

+0

* '다른 데이터베이스 테이블, 다른 세션 이름, 다른 로그인 페이지 및 웹 사이트의 완전히 다른 부분 및 페이지에 대한 액세스'*. 위의 모든 것을 고려해 볼만한 가치가있는 것 같습니다. 테스트 및 관리가 쉽습니다. – topher

답변

0

, 그러나 당신이 당신의 프론트 엔드에 user2를 작성하여 그것을 할 수있을 것 대신 user 구성 요소를 사용하는가 로그인을 할 user2 구성 요소를 사용하는 LoginForm2 모델을 만들 수 있습니다.

프론트 엔드 구성 :

'user2' => [ 
    'class' => 'yii\web\User', 
    'identityClass' => 'common\models\User2', 
    'enableAutoLogin' => true, 
], 

LoginForm2.php :

public function login() { 
    if ($this->validate()) { 
     return Yii::$app->user2->login($this->getUser(), 1800); 
    } 
    return false; 
} 
+0

위와 같이 구현하면 "설정 알 수없는 속성 : common \ models \ User2 :: identityClass"오류가 발생합니다. 어떤 아이디어? –

+0

'user2'에'class'를 추가하는 코드를 수정했습니다 – marche

+0

게시 한 코드를 테스트 해 보셨습니까? 불행하게도 이것은 작동하지 않습니다. user2 계정으로 로그인 할 때, 원하지 않는 웹 사이트의 다른 부분에서도 일반 사용자로 액세스 할 수 있습니다. –