2017-09-23 8 views
0

なぜYii2認証はお尻のような痛みですか?Yii2ログインの問題

SiteControllerコントローラのindexアクションには、認証されたユーザだけがアクセスできるように制限したいと考えています。基本的なアプリケーションテンプレートをダウンロードしました。ここSiteControllerbehaviors()メソッドのコードは次のとおりです。

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'); 
} 

Userモデルが全く変更されません。なぜsite/indexにアクセスしようとすると、正しくsite/loginにリダイレクトされますが、管理者の資格情報(admin/admin)でログインしても、再度ログインページにリダイレクトされますか? WTFはここで間違っていますか?面白いのは、ユーザー管理者がログインしているランタイムログを読み込んでも、ログインページが再び表示されることです。

答えて

0

はそれはない、あなたはまた、このよう

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

を試すことができ、あなたのurlManagerのCONFIまたはあなたのhtaccessでリダイレクトを持っていないことを確認してください、あなたが本当に正しく記録され、ログインアクション作業していることを確認してください作業。 –

+0

私はこれを私のアプリで使っています。あなたは確かにログに記録されていますか? 。あなたはいくつかのrediection urlManagerやhtaccesを持っていませんか? – scaisEdge

+0

間違ったユーザー名やパスワードを入力した場合、ログインフォームにエラーが表示されますが、そうではありません。私が言ったように、ランタイムログは成功したログインを記録しますが、とにかく再度ログインするようにリダイレクトされます。これは非常にイライラしています... !!! –