zoukankan      html  css  js  c++  java
  • 判断用户是否已经登录(跳转到不同页面或者执行不同动作)

    1.

    2.

       <if condition="$GLOBALS['userinfo']['user_id'] gt 0">
            <span class="help_wz"><a href="{$Think.config.VIP_URL}/Member/user_pwd/" style="color:#404958;">找回登录密码</a></span>
            <else/>
            <span class="help_wz"><a href="/Login/FindPwd" style="color:#404958;">找回登录密码</a></span>
            </if>

    3.后台设置全局变量并查询用户信息

        public function UserInfo($user_id){
            //查询系统信息
            $system=array(
                    'CmdId'=>'System',
                    'Token'=>'wap',
                    'PostDetails'=>json_encode(array(
                    )));
            //通过curl的post方式发送接口请求
            $curl=new CurlController();
            $strs=$curl->SendCurl($system);
            $GLOBALS['system']=$strs['AcctDetails'];
            if(empty($user_id)){
                return false;
            }
            setcookie("login_uid", $user_id, time() + 3600, "/", C('cookie_url'));
            setcookie("rdun", $this->authcode($user_id . "," . time(), "ENCODE"), time() + 3600,"/",C('cookie_url'));;
            $data=array(
                    'CmdId'=>'Individual',
                    'Token'=>session('token'),
                    'PostDetails'=>json_encode(array(
                            'user_id'=>$user_id,
                    )));
            //通过curl的post方式发送接口请求
            $curl=new CurlController();
            $str=$curl->SendCurl($data);
            
            $GLOBALS['userinfo']=$str['AcctDetails'];
            $newtoken=unserialize($str['AcctDetails']['token']);
            $oldtoken=unserialize(session('token'));
            if(!empty(session('token')) && !empty($str['AcctDetails']['token'])){
                //用户不对
                if($newtoken['user_id'] !== $newtoken['user_id']){
                    session('token',null);
                    session('user_id',null);
                    header('Location:/Login/Login');
                    return false;
                }
                //token不对
                if($newtoken['time'] !== $oldtoken['time']){
                    session('token',null);
                    session('user_id',null);
                    header('Location:/Login/Login');
                    return false;
                }
                //超时的不能在这做,原因是存入session的值不变,如果用户一直操作的话,而且只登陆一次,那么就会出现问题
            }
            return true;
        }

     4.后台调用该方法

  • 相关阅读:
    XML HTML
    git教程
    GIT过滤
    HTTP
    golang json
    golang type 和断言 interface{}转换
    tcp参数设置
    tcp状态-TIME_WAIT与CLOSE_WAIT带来的坑
    tcp状态
    文件描述符与socket连接
  • 原文地址:https://www.cnblogs.com/yangzailu/p/5895775.html
Copyright © 2011-2022 走看看