ThinkPHP5.0(四)TP5框架下的Session的设置,权限验证和调用

Session

ThinkPHP采用think\Session类提供Session功能支持。
在ThinkPHP5.0中使用\think\Session类进行Session相关操作,Session会在第一次调用Session类的时候按照配置的参数自动初始化。

Session在项目中的设置

session的设置一般在登陆成功的时候,将用户信息通过Session::set(‘name’,’TOM’)的方法进行设置:

if 登陆信息正确
{
 //登陆成功之后,把一些信息放入session中
 Session::set('name',$userinfo->NAME,'think');
 Session::set('ROLE',$userinfo->ROLE,'think');//用户权限
 Session::set('start_time',time(),'think');//记录登录时间
}

Session的销毁

  • 自动销毁

session有默认的自动销毁时间,可以设置自动销毁时间,参考文章:thinkphp如何有效的设置session过期时间

  • 手动注销

一般时用户主动通过退出登陆操作时调用

//登出
public function loginOut(){
    Session::clear('think');//清空session
    return $this->success('注销成功','Index/login');
}

Sesion的权限判断

设置session的最大的目的就是进行权限的判断,判断用户是否有进入某个页面的权限,例如:如果没有登陆就什么页面都不能访问。
方法为在父类控制器base.php的构造函数中添加对当前session进行判断,所以的控制器都要继承这个父类
在父类控制器中调用Session::has(‘name’),判断session中是否有值。

    protected function is_login()
        {
            if(Session::has('JZGH','think') && Session::has('ROLE','think'))
            {
                return true;
            }else
            {
                return false;
            }
        }

Session的调用

  • 在后台控制器.php中调用;
    直接用变量接收Session::get就行了

    $name=Session::get('name','think');
  • 在前台.html中调用。

    系统变量的输出通常以{$Think 打头

    {$Request.session.name}

或者


    {$Think.session.name}

猜你喜欢

转载自blog.csdn.net/define_LIN/article/details/81078376