8

すべてのページの例をレンダリングする前に、ユーザーがログに記録されているかどうかを確認する必要があります。

http://mypage.com/site/about

最初に、ユーザーがログインしているかどうかを確認し、ログインしていない場合は、Tom ログイン ページをリダイレクトします。

4

9 に答える 9

8

true の場合、これを使用して確認することもできます。ユーザーはログインしていません。そうでない場合はログインしています。

    if(Yii::app()->user->isGuest){
     //not logged user
    }else{
     //loggedin user
    }
于 2013-06-19T09:18:16.147 に答える
4

アクセス ルールを使用してこれを達成する方が良い方法です。

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必要な場合は、コントローラーで実行してください。すべてのコントローラーがそのコントローラーを継承するためです。

于 2013-06-19T09:19:33.433 に答える
3

init()コントローラの機能にチェックを書き込むことができます。ログインしていない場合、ユーザーをリダイレクトします

public function init()
{
    if(!isset(Yii::app()->session['user']))
    {
        $this->redirect(array('login/'));
    }
}
于 2013-06-19T09:15:12.143 に答える
3

これは私のために働く

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 に追加するだけです。

于 2014-09-23T06:13:21.307 に答える
0

構成にグローバルな動作を追加できます。

'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

于 2014-11-24T10:47:01.170 に答える
0

ゾンビ投稿で申し訳ありませんが、私は isGuest を使用しています。

if (Yii::app()->user->isGuest)
{
  $this->redirect('login/page');
}
于 2015-07-07T17:12:15.143 に答える
-1

ユーザーがログインしているかどうかを確認するコードを別のファイルに記述します。

次に、その php ページをすべてのファイルに含めます。

次のコードを書くだけです。

include('checklogin.php');

checklogin.php ページで、Cookie が設定されているかどうかを確認するために次のように記述できます。

isset(cookie('<name_of_cookie>'))
{
 //User in already logged in
}
else
{
 //Redirect to login page
} 
于 2013-06-19T09:18:32.140 に答える