2016-06-26 2 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を設定することにより示されているから、エラーメッセージを防ぐことができます。これは私が(私は承認アダプタとしてTinyAuthを使用しています)Authコンポーネントをロードする方法です。

ユーザーが既にログインしている場合にのみ、認証エラーを表示することがあります。 の値をブール値falseに設定すると、このメッセージが表示されなくなります。

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

これは、エラーメッセージを無効にする必要があります

関連する問題