首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查是否已登录

问检查是否已登录
EN

Stack Overflow用户
提问于 2016-07-14 18:13:12
回答 1查看 59关注 0票数 0

我正在尝试检查用户是否已登录或未使用会话变量。但不能。我使用的是yii框架的默认登录。这是控制器操作:

代码语言:javascript
复制
public function actionLogin()
{

  if (!\Yii::$app->user->isGuest) {
    return $this->redirect(Yii::$app->request->baseUrl.'/todo/index');  
  }

  $model = new LoginForm();
  if ($model->load(Yii::$app->request->post()) && $model->login()){   
    $session = Yii::$app->session;
    $_SESSION['is_logged_in'] = TRUE;

    return $this->redirect(Yii::$app->request->baseUrl.'/todo/index');      
  }

  return $this->render('login', [
    'model' => $model,
  ]);

}

为了检查用户是否已登录,我使用了:

代码语言:javascript
复制
public function actionIndex()
{
  $session = Yii::$app->session;
  if (isset($_SESSION['is_logged_in'])) {   
    echo "yes!";
  }
  else {
    echo "no!";
  }
}

它显示no!即使我登录了in.What,我在这里也做错了吗?

EN

回答 1

Stack Overflow用户

发布于 2016-07-15 14:17:46

默认情况下,Yii2高级应用程序自带了一个登录的工作示例,如果您使用的是默认登录系统,那么您将拥有完整的登录用户对象:

代码语言:javascript
复制
 print_r(Yii::$app->user);

您可以访问Yii::$app->user->id, Yii::$app->user->name

如果你想要会话,那么你也可以这样做。

代码语言:javascript
复制
use  yii\web\Session;
$session = Yii::$app->session;
// check if a session is already open
if ($session->isActive) ...
// open a session
$session->open();
// close a session
$session->close();
// destroys all data registered to a session.
$session->destroy();

Reference

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38371452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档