基于 ThinkPHP5.1 实现的海豚后台登录检测分析

基于 ThinkPHP5.1 实现的海豚后台登录检测分析

  1. 首先来到登录检测代码处,代码

    function is_signin()
    {
        $user = session('user_auth');   // 获取登录session 保存的数据
        if (empty($user)) {
            // 判断是否记住登录
            if (cookie('?uid') && cookie('?signin_token')) {   // 查看cookie 保存东西是否存
                $UserModel = new User();
                $user = $UserModel::get(cookie('uid'));
                if ($user) {
                   // 检测数据是否被篡改
                    $signin_token = data_auth_sign($user['username'].$user['id'].$user['last_login_time']);
    
                    if (cookie('signin_token') == $signin_token) {
                        // 自动登录
                        $UserModel->autoLogin($user);  // 重新到登录处
                        return $user['id'];
                    }
                }
            };
            return 0;
        }else{   
           //  如果数据存在 进行合法 数据验证
            return session('user_auth_sign') == data_auth_sign($user) ? $user['uid'] : 0;
        }
    }

    大概就是这样, 思想是不错的。

讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!