2015-12-04 31 views
1

yii2注册后如何实现自动登录?在yii1中,我们通过用户标识实现了这一点,但现在我无法找到它。Yii2注册后自动登录

我的控制器

public function actionCreate() 
{ 
    $model = new User(); 

    if ($model->load(Yii::$app->request->post()) && $model->save()) { 
     Yii::$app->session->setFlash('success', 'Please Login with Email/Password!'); 

     return $this->redirect('../site/login'); 
    } else { 
     return $this->render('create', [ 
      'model' => $model, 
     ]); 
    } 
} 

如果注册成功,我想自动登录,而不是去站点登录。

回答

4
if ($model->load(Yii::$app->request->post()) && $model->save()) { 

    \Yii::$app->user->login($model); 

    return $this->redirect(['/site/index']); 

} 
+0

我din't使用这种方法,因为它实际上是调用了'swichIdentity()'用于做登录(和我不知道OP是否想用这个强制登录来记录日志),我宁愿使用'swichIdentity()'。但我认为这是一个意见问题:P – Clyff

+0

确定您可以使用'switchIdentity'而不是'login',但我认为'login'更易于理解 – JustSamter

+0

谢谢您的回答。 –

2

您可以使用switchIdentity()方法完成该操作。

例子:

if ($userModel->load(Yii::$app->request->post()) && $userModel->save()) { 
    Yii::$app->user->switchIdentity($userModel); // log in 
    // do your stuff 
} 
+0

谢谢Clyff.giving你的时间.... –