私のYii2アプリケーションでは、すべてのユーザーを強制的に認証しようとしています。まだ認証されていない場合は、ログインページにリダイレクトする必要があります。
Yii1では、ユーザーがログインしているかどうかをチェックするクラスを作成し、そのクラスをメインの構成ファイルのonBeginRequest
動作にアタッチすることでこれを行いました。
// Yii 1
'behaviors' => array(
'onBeginRequest' => array(
'class' => 'application.components.RequireLogin',
)
),
Yii2で同じ動作をするにはどうすればよいですか?これを行うために動作を使用できることはわかっていますが、この動作をメインの構成ファイルに追加したくないので、すべての要求の認証が最初にチェックされます。
動作動作メソッドは次のようになります。
// Yii2
public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['login', 'error'],
'allow' => true,
],
[
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
さて、次のコードを追加する必要がありました以下'components' => [...]
'as beforeRequest' => [
'class' => 'yii\filters\AccessControl',
'rules' => [
[
'actions' => ['login', 'error'],
'allow' => true,
],
[
'allow' => true,
'roles' => ['@'],
],
],
],
フォーマットの詳細を読む: http://www.yiiframework.com/doc-2.0/guide-concept-configurations.html#configuration-format