2016-06-26 4 views
0

사용자가 로그인하지 않고 로그인 페이지로 리디렉션 된 후 홈페이지를 열려고해도 authError가 표시됩니다. 수정하지 않고이를 방지하기위한 우아한 방법이 있습니다 인증 구성 요소?CakePHP 3.2 : 사용자가 로그인하지 않은 경우 표시되는 authError 방지

$this->loadComponent('Auth', [ 
       'loginAction' => [ 
        'controller' => 'Users', 
        'action' => 'login' 
       ], 
       'loginRedirect' => [ 
        'controller' => 'Home', 
        'action' => 'index' 
       ], 
       'authError' => 'You dont have permissions for that action', 
       'authenticate' => [ 
        'Form' => [ 
         'fields' => [ 
          'username' => 'email', 
          'password' => 'password' 
         ], 
         'scope' => ['Users.active' => true], 
         'contain' => ['Roles'] 
        ] 
       ], 
       'authorize' => [ 
        'TinyAuth.Tiny' => [ 
         'roleColumn' => 'role_id', 
         'rolesTable' => 'Roles', 
         'multiRole' => true, 
         'pivotTable' => 'roles_users', 
         'superAdminRole' => null, 
         'authorizeByPrefix' => false, 
         'prefixes' => [], 
         'allowUser' => false, 
         'adminPrefix' => null, 
         'autoClearCache' => true 
        ] 
       ] 
      ] 
     ); 

답변

3

CakePHP's documentation에 따르면 당신이 falseauthError을 설정하여 표시되는 오류 메시지를 방지 할 수 있습니다 : 이것은 내가 (I 권한 부여 어댑터로 TinyAuth을 사용하고 있습니다) 인증 구성 요소를로드하는 방법입니다.

가끔 사용자가 이미 로그인 한 후에 만 ​​권한 오류를 표시하려고합니다. 값을 부울 false로 설정하여이 메시지를 표시하지 않을 수 있습니다.

if (!$this->Auth->user()) { 
    $this->Auth->config('authError', false); 
} 
:

이 오류 메시지를 해제한다

관련 문제