我们可以在Yii中为sessiontime out和accesscontrol实现不同的登录URL吗?

时间:2013-10-02 12:10:02

标签: yii

是否可以在Yii中使用2个登录URL。

即如果发生sessiontimeout,则应将用户重定向到site / login。

但是当未经身份验证的用户尝试访问该网址时,他应该被重定向到site / loginaccount

有可能吗?

这是配置文件中用于会话超时和初始化登录URL的代码

'components'=>array(
    'user' => array(
        'class' => 'WebUser',
        'loginUrl' => array('site/loginaccount'),
        'allowAutoLogin' => true,
    ),
        'session' => array(
       'class'=>'CDbHttpSession',
        'timeout'=>$params['session_timeout'],
        'autoStart'=>true,
    ),

这是我的控制器中的代码,如果用户是Guest

,它会重定向到site / loginaccount
  return array(
        array('allow',  // allow all users to perform 'index' and 'view' actions
            'actions'=>array('Createdeal'),
            'users'=>array('*')
        ),

1 个答案:

答案 0 :(得分:0)

执行此操作的一种愚蠢的方法是在您的视图(或模板)中放置类似的内容:

<head>  
        <?php if (!Yii::app()->user->isGuest) {?>
                <meta http-equiv="refresh" content="<?php echo Yii::app()->params['session_timeout'];?>;url=http://example.com"/>
        <?php }?>
</head>

显然,可以使用createUrl()生成网址。你可以通过javascript做类似的事情。

显然,所有关于使用meta referh和javascript重定向的通常免责声明都适用。 。 。 。