نمایش تمام رخداد های جدید برای کاربر بعد از لاگین

[font="Tahoma"][rtl]

سلام دوستان

خسته نباشید

توی لاگ اوت سایت برای کاربر جاری این کد رو نوشتم:

[/rtl][/font]




public function actionLogout()

    {

        $user = User::find()->where('id = :id', [':id' => \Yii::$app->user->identity->id])->one();

        $user->touch('last_login');

        Yii::$app->user->logout();

 

        return $this->goHome();

    }



[font="Tahoma"][rtl]

و وقتی کاربر لاگین می کنه همه اون موارد جدید رو که لازمه رو می بینه

مشکل اینجاست که کاربر حتما باید گزینه خروخ رو بزنه

می شه کاری کرد که کاربر auto login باشه و اگه بعد از یه مدت اومد بازم بتونه موارد جدید رو ببینه؟

ممنون

[/rtl][/font]

[font="Tahoma"][rtl]

سلام

میتونی از event afterLogin

استفاده کنی

به عنوان مثال میتونی یه هندلر واسه afterlogin تو فایل کانفیگ بزاری

[/rtl]




'user' => [

            'identityClass' => 'app\models\User',

            'on afterLogin' => 'your_function_name', //this is a PHP Callback

            'enableAutoLogin' => true,

        ],



[rtl]

خوبی afterLogin و beforeLogin اینه که این eventها هم تو ورود معمولی و هم تو ورود با کوکی trigger میشن بنابراین میتونی یه فانکشن بنویسی که کارهای متفاوتی برحسب ورود معمولی و یا ورود با کوکی انجام بده

[/rtl][/font]

[font="Tahoma"][rtl]

ممنون

خوب چطوری تشخیص بدم که با کوکی لاگین کرده یا ورود عادی داشته که عملکرد مناسب رو داشته باشم؟

[/rtl][/font]




function your_function_name($event) {

    // $event is an object of yii\web\UserEvent

    if($event->cookieBased)

       //login by cookie

     ;

    

}



Events