すべてのページの例をレンダリングする前に、ユーザーがログに記録されているかどうかを確認する必要があります。
最初に、ユーザーがログインしているかどうかを確認し、ログインしていない場合は、Tom ログイン ページをリダイレクトします。
すべてのページの例をレンダリングする前に、ユーザーがログに記録されているかどうかを確認する必要があります。
最初に、ユーザーがログインしているかどうかを確認し、ログインしていない場合は、Tom ログイン ページをリダイレクトします。
true の場合、これを使用して確認することもできます。ユーザーはログインしていません。そうでない場合はログインしています。
if(Yii::app()->user->isGuest){
//not logged user
}else{
//loggedin user
}
アクセス ルールを使用してこれを達成する方が良い方法です。
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'contact' actions
'actions'=>array('index','contact'),
'users'=>array('*'),
),
array('allow', // allow authenticated user to perform 'delete' and 'update' actions
'actions'=>array('update','delete'),
'users'=>array('@'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
本当に1か所のチェックがcomponent/controller
必要な場合は、コントローラーで実行してください。すべてのコントローラーがそのコントローラーを継承するためです。
init()
コントローラの機能にチェックを書き込むことができます。ログインしていない場合、ユーザーをリダイレクトします
public function init()
{
if(!isset(Yii::app()->session['user']))
{
$this->redirect(array('login/'));
}
}
これは私のために働く
public function beforeAction(CAction $action)
{
if(!isset(Yii::app()->user->user_id) && !($action->controller->id == 'site' && $action->id == 'login'))
{
$this->redirect(array('site/login'));
}
return true;
}
上記の関数を component/Controller.php に追加するだけです。
構成にグローバルな動作を追加できます。
'as access' => [
'class' => \yii\filters\AccessControl::className(),
'rules' => [
[
'actions' => ['login', 'error', 'resend', 'forgot'],
'allow' => true,
],
// allow authenticated users
[
'allow' => true,
'roles' => ['@'],
],
]
],
http://stuff.cebe.cc/yii2docs/guide-concept-configurations.html#configuration-format
ゾンビ投稿で申し訳ありませんが、私は isGuest を使用しています。
if (Yii::app()->user->isGuest)
{
$this->redirect('login/page');
}
ユーザーがログインしているかどうかを確認するコードを別のファイルに記述します。
次に、その php ページをすべてのファイルに含めます。
次のコードを書くだけです。
include('checklogin.php');
checklogin.php ページで、Cookie が設定されているかどうかを確認するために次のように記述できます。
isset(cookie('<name_of_cookie>'))
{
//User in already logged in
}
else
{
//Redirect to login page
}