2017-09-23 1 views
0

왜 Yii2 인증은 엉덩이에 통증이 있습니까?Yii2 로그인 문제

인증 된 사용자 만 SiteController 컨트롤러의 index 컨트롤러 동작을 제한하려고합니다. 기본 응용 프로그램 템플릿을 다운로드했습니다.

public function behaviors() 
{ 
    return [ 
     'access' => [ 
      'class' => AccessControl::className(), 
      'only' => ['login', 'logout', 'index'], 
      'rules' => [ 
       [ 
        'allow' => true, 
        'actions' => ['logout', 'index'], 
        'roles' => ['@'], 
       ], 
       [ 
        'allow' => true, 
        'actions' => ['login'], 
        'roles' => ['?'], 
       ], 
      ], 
     ], 
     'verbs' => [ 
      'class' => VerbFilter::className(), 
      'actions' => [ 
       'logout' => ['post'], 
      ], 
     ], 
    ]; 
} 

index 조치 : :

public function actionIndex() 
{ 
    return $this->render('index'); 
} 

사용자 모델은 전혀 수정되지 않습니다 여기 SiteControllerbehaviors() 방법에 대한 코드입니다. site/index에 액세스하려고 시도하면 올바르게 site/login으로 리디렉션되지만 관리자 자격 증명 (admin/admin)으로 로그인 한 후에도 다시 로그인 페이지로 리디렉션됩니까? WTF가 틀렸어? 재미있는 점은 런타임 로그에서 사용자 admin이 로그인했지만 로그인 페이지가 다시 표시된다는 것입니다.

답변

0

은 정말 확실 로그인 및 로그인 액션 작업이 제대로, 당신이 당신의 urlManager를 눌러 확인 또는 당신은 또한 그것은하지 않습니다이 방법

public function behaviors() 
    { 
     return [ 
      'access' => [ 
       'class' => AccessControl::className(), 
       'rules' => [ 
        [ 
         'actions' => ['login', 'error'], 
         'allow' => true, 
        ], 
        [ 
         'actions' => ['logout', 'index'], 
         'allow' => true, 
         'roles' => ['@'], 
        ], 
       ], 
      ], 
      'verbs' => [ 
       'class' => VerbFilter::className(), 
       'actions' => [ 
        'logout' => ['post'], 
       ], 
      ], 
     ]; 
    } 
+0

을 시도 할 수 있습니다 다음 htaccess로의 리디렉션을하지 않는 것이 확인 될 작업. –

+0

내 응용 프로그램 에서이 작업을 사용 .. 당신은 correcly 기록되어 있습니까? . 그리고 당신은 몇 가지 rediection urlManager 나 htacces를 가지고 있지 않습니까? – scaisEdge

+0

잘못된 사용자 이름 및/또는 암호를 입력하면 로그인 양식에 오류가 표시되지만 오류는 표시되지 않습니다. 앞에서 말한 것처럼 런타임 로그는 성공적인 로그인을 기록하지만 어쨌든 다시 로그인하도록 리디렉션됩니다. 이것은 매우 실망 스럽습니다 ... !!! –