Yii中处理前后台登录

如果有前台会员登陆和后台管理员登陆分离的需求,则需要为前台和后台的登陆定制两套不同的验证机制,主要是通过定义不同的Session来实现。要解决这个问题就要将前后台使用不同的Cwebuser实例登录。这样就已经做到了前后台登录分离开了,但是此时你退出的话你就会发现前后台一起退出了。于是我找到了logout()这个方法,发现他有一个参数$destroySession=true,原来如此,如果你只是logout()的话那就会将session全部注销,加一个false参数的话就只会注销当前登录实例的session了

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

main.php

前台user(Cwebuser)的配置: UserIdentity

    ‘user‘=>array(  
        ‘class‘=>‘WebUser‘,//这个WebUser是继承CwebUser,稍后给出它的代码  
        ‘stateKeyPrefix‘=>‘member‘,//这个是设置前台session的前缀  
        ‘allowAutoLogin‘=>true,//这里设置允许cookie保存登录信息,一边下次自动登录  
    ),

后台user(Cwebuser)的配置: AdminIdentity

    ‘admin‘ => array(  
        ‘class‘ => ‘AdminWebUser‘, //后台登录类实例  
        ‘stateKeyPrefix‘ => ‘admin‘, //后台session前缀  
        "guestName" => "游客"  
    ),

Yii::app()->user//前台访问用户信息方法

Yii::app()->admin//后台访问用户信息方法

  Yii::app()->admin->login($this->_identity,$duration);
时间: 2024-10-11 07:00:37

Yii中处理前后台登录的相关文章

Yii中配置单点登录 即多个子站同步登录

研究Yii的同步登录大概2个多月,几乎查遍了网上所有资料和案例,但都不是很理想,最后摸索出整理出来以下配置方案. 以下配置文件在config.php中,所有需要同步的站点都需要填写.网上一些站点给出的有的只是一部分,导致我走了很多弯路,经过N次测试后,确定以下方案是完美的. [php] view plaincopyprint? 'components'=>array( 'user'=>array( //'class'=>'CWebUser',//你可以自定义你的Cwebuser 'ide

Yii2 基础模板前后台登录分离

1.用GII 生成一个模块(modules)名字为 admin 2.在./config/web.php 中加入如下配置 'modules' => [ 'admin' => [ 'class' => 'app\modules\admin\Module',//后台模块 ] ], 'components' => [ 'user' => [ 'identityClass' => 'app\models\User', 'enableAutoLogin' => true, '

YII 1.0 (7) 登录信息调取 session使用

登陆信息调取 Yii::app()->user->name,调取登陆的session信息 登录时 调用了 $LoginForm->login() 这个方法上面就能够取到登录的用户名 前后台session前缀设置 注意和前台区分,需要设置: 在modules里面的 模块Module.php里面 Yii::app()->setComponents(array( 'user' => array('stateKeyPrefix' => 'admin'), )); SESSION

Yii数据库用户信息登录

原本的Yii里面只有admin和demo账号,怎么可以使用数据库里面的Username和Password登陆呢? 数据库:例如DatabaseName. 数据表:例如TableName,表里面有username和password等相关信息. Yii: 1.在main.php开启'db'=array(…………),开启数据库连接(略) 2.生成TableName的model. 3.在UserIdentity.php中改变原本的账号审查. 代码如下: <?php class UserIdentity

Yii Framework2.0开发教程(4)在yii中定义全局变量

在yii中定义全局变量最好的地方是入口脚本处.也就是web文件夹中的index.php文件 例如我们在defined('YII_ENV') or define('YII_ENV', 'dev');后写上 defined('ZYL_HEHE') or define('ZYL_HEHE','zhyoulun-hehe'); 并在我们教程(1)中建立的views/zhyoulun/helloworld.php文件中写上 <?php echo 'hello world!'; //全局变量 echo co

修改SQLServer中sa验证登录方法

转载请注明出自朱朱家园http://blog.csdn.net/zhgl7688 修改SQLServer中sa验证登录方法: 1.  在开始菜单中找到SQLServer Management Studio,双击打开,采用Windows身份验证进入. 2.  选中"服务器名称",点击右键,选择"属性",打开服务器属性窗口. 3.  在打开的窗口中左侧列表中找到"安全性"并选中,在窗口右侧出现的服务器身份验证中选中"SQL Server和W

YII 中的事务处理机制

$model=Post::model(); $transaction=$model->dbConnection->beginTransaction(); try{ $post=$model->findByPk(10); $post->title='new post title'; $post->save(); $transaction->commit(); }catch(Exception $e){ $transaction->rollBack(); } 摘至:h

yii中数据的"增删改查"相关工作!(此文比较乱,需细看)

使用findByPk()根据数据表主键查询的是对象,不需要使用foreach()循环出来 但是使用findall()和find()查询的是对象类型的数组需要使用foreach()循环出来 ======================================= public function getMinLimit () { $sql = "..."; $result = yii::app()->db->createCommand($sql); $query = $r

WPF中实现先登录后启动主程序的方法

[转载] http://blog.csdn.net/swarb/article/details/17301167 WPF中实现先登录后启动主程序的方法 我觉得先登录后启动应用主程序是一个很经典的问题,基本上如果要写一个应用程序都会用到这个的小环节.我在这个问题上挣扎了大半天才找到解决方案,我的实现方法我觉得有点不正宗,如果有哪位高手知道更好的方法欢迎留言指导!! 首先来说一下传统C#在WinForm中的实现方法,基本上是在Main函数中根据第一个启动窗口的DialogResult来判断是否实例第