| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | <?php/** * @copyright   Copyright (c) 2017 https://www.sapixx.com All rights reserved. * @license     Licensed (http://www.apache.org/licenses/LICENSE-2.0). * @author      pillar<ltmn@qq.com> * 前台管理切换Cookie事件 */namespace app\common\event;use app\common\model\SystemMember;use think\facade\Cookie;use encrypter\Encrypter;class Passport{    const cookie_login          = 'passport_sapixx';  //Cookie名称    const cookie_login_key      = 'passport_sapixx_TMaHtsBJ55bA';  //Cookie名称    const cookie_miniapp        = 'miniapp';         //Cookie名称    const cookie_miniappe_key   = 'miniapp_sapixx';  //Cookie名称    const cookie_miniapp_times  = 86400;  //Cookie名称   /**     * ##########################################     * 判断管理员是否登录     * @access public     * @return boolean     */    public static function isLogin(){        return Cookie::has(self::cookie_login) ? true :false;    }        /**     * 获取用户详细信息     * @return boolean/array     */    public static function getUser(){        if(self::isLogin()){            $user = SystemMember::where(['id' => self::getLogin('user_id'),'is_lock' => 0])->find();            if (empty($user)) {                return false;            }            if($user['is_lock'] == 0){                return $user;            }        }        return false;    }        /**     * 获取登录Cookie中保存的数据     * @param string $key数组键名(user_id、username,ucode);     * @return void     */    public static function getLogin(string $key = null){        if(self::isLogin()){            $info = Cookie::get(self::cookie_login);            $login_info = json_decode(Encrypter::cpDecode($info,self::cookie_login_key),true);            return is_null($key) ? $login_info : $login_info[$key];        }        return false;    }    /**     * 设置登录Cookie     * @param array     * @access public     */    public static function setLogin($param){        $data = [            'user_id'    => $param['id'],            'username'   => $param['username'],            'login_time' => time(),        ];        $key = Encrypter::cpEncode(json_encode($data),self::cookie_login_key);        return Cookie::set(self::cookie_login,$key);    }    /**     * 退出Cookie     * @access public     */    public static function setlogout(){        return Cookie::delete(self::cookie_login);    }     /**     * ##########################################################     * 获取管理应用信息     * @param string $key数组键名(user_id、username,ucode);     * @return void     */    public static function getMiniapp(){        if(Cookie::has(self::cookie_miniapp) ){            $info = Cookie::get(self::cookie_miniapp);            return json_decode(Encrypter::cpDecode($info,self::cookie_miniappe_key),true);        }        return false;    }    /**     * 设置管理应用信息     * @access public     */    public static function setMiniapp($param){        $data = [            'member_id'         => $param['member_id'],            'miniapp_id'        => $param['miniapp_id'],            'member_miniapp_id' => $param['member_miniapp_id'],        ];        $key = Encrypter::cpEncode(json_encode($data),self::cookie_miniappe_key);        return Cookie::set(self::cookie_miniapp,$key,self::cookie_miniapp_times);    }    /**     * 清空管理信息     * @access public     */    public static function clearMiniapp(){        return Cookie::delete(self::cookie_miniapp);    }}
 |