单一登录,OSS

 



单一登录:

一下代码是根据token字段来判断用户是否在别的地方登录:



    /**
     * 退出登录处理
     *Method loginOut
     * @return \think\response\Redirect
     */
    public function loginOut()
    {
        Session(null);

        return redirect('admin/login/login');
    }
    //返回登录页面
    public function login()
    {
        if (session('userInfo') == false) {

            return view('login/login');
        } else {

            $userInfo = session('userInfo');

            $data = User::where('id',$userInfo['id'])->find();

            if ($userInfo['token'] != $data['token']) {

                return redirect(url('admin/login/login'));
            } else {

                User::where('id', $userInfo['id'])->update(['token' => $userInfo['token']]);
                return redirect(url('test512/sign/index'));
            }

        }
    }

    //登录处理
    public function doLogin(Request $request)
    {
        $data = $request->post();
        $data['password'] = md5(md5($data['password']));


        $res = User::where('username', $data['username'])->find();


        if ($res == false) {
            $this->error('账号有误', 'admin/login/login');
        } else {
            if ($res['password'] != $data['password']) {
                $this->error('密码有误', 'admin/login/login');

            }

            $res['token'] = rand().time();//生成token

            User::where('id',$res['id'])->update(['token'=>$res['token']]);

            session('u_id',$res['id']);
            session('userInfo',$res);

            return redirect(url('test512/sign/index'));
        }
        //在登录跳转完成的首页
 if (!session('userInfo'))
        {
            return redirect('admin/login/login');
        }else {
            $res = Session('userInfo');
            $item = User::where('id',$res['id'])->find();
            if ($item['token']!=$res['token']){
                return redirect(url('admin/login/loginout'));
            }
        }
    }

无限级分类 

 /**
     * 无限级分类
     *Method treelevel
     * @param array $data
     * @param int $pid
     * @param string $html
     * @param int $level
     */
    //无限极分类
    public function get_tree_list($data,$pid=0,$html="--",$level=1){
        //定义静态空数组
        static $arr = [];

        //循环权限的数据
        foreach ($data as $v){
            //判断pid 是否等于$pid 等于则为顶级
            if($v['pid'] == $pid){
                $v['html'] = str_repeat($html,$level);
                $v['level'] = $level+1;
                $arr[] = $v;

                $this->get_tree_list($data,$v['id'],$html,$v['level']);
            }
        }
        return $arr;
    }

 单一登录处理

目录

 单一登录处理

 文件上传阿里OSS云储存


 文件上传阿里OSS云储存

先安装云存储插件

阿里OSS服务  

 composer require aliyuncs/oss-sdk-php

if (!function_exists('uplodeOss')) {
    function uplodeOss($file){
        $path = Filesystem::disk('public')->putFile('upload', $file);
//图片路径,Filesystem::getDiskConfig('public','url')功能是获取public目录下的storage,
        $ossPath = substr(strrchr($path, "/"), 1);
//结果是 $picCover = storage/upload/20200825/***.jpg
        $picCover = '/' . str_replace('\\', '/', $path);
//上传OSS 并获取阿里云OSS地址
        $image = aliyun($ossPath, '', '', 'gzs123');
        if($image){
            return $image;
        }
    }
}


if (!function_exists('aliyun')) {
    function aliyun($savePath,$category='',$isunlink=false,$bucket=""){
        $accessKeyId = Config::get('app.aliyun_oss.accessKeyId');//去阿里云后台获取秘钥
        $accessKeySecret = Config::get('app.aliyun_oss.accessKeySecret');//去阿里云后台获取秘钥
        $endpoint = Config::get('app.aliyun_oss.endpoint');//你的阿里云OSS地址
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
        //        判断bucketname是否存在,不存在就去创建
        if( !$ossClient->doesBucketExist($bucket)){
            $ossClient->createBucket($bucket);
        }
        $category=empty($category)?$bucket:$category;

        $savePath = str_replace("\\","/",$savePath);

        $object = $category.'/'.$savePath;//想要保存文件的名称
        $file = './upload\\'.$savePath;//文件路径,必须是本地的。

        try{
            $ossClient->uploadFile($bucket,$object,$file);
            if ($isunlink==true){
                unlink($file);
            }
        }catch (OssException $e){
            $e->getErrorMessage();
        }
        $oss=Config::get('aliyun_oss.url');
        $web = "http://gzs123.oss-cn-shanghai.aliyuncs.com";
        return $web.$oss."/".$object;
    }
}

/**
     * 保存新建的资源
     *
     * @param \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        $data = $request->post();
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('images');

        // 移动到框架应用根目录/uploads/ 目录下
        $info = $file->move( 'uploads');

        if($info) {
            // 成功上传后 获取上传信息

            // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
            $img = $info->getSaveName();

        }
        $obj = new TPOSS();
        $rest = $obj->uploadOssFile('yw666',$img);

        $data['images']=$rest['info']['url'].'?x-oss-process=style/400-300';
        //添加数据
         SignModel::create($data,true);

        return redirect('sign/index');
    }
$commentData->join( join: 'image ' ,condition: " image.i_id = user.id')
->where( field: ' comment.aid' ,$id.)->select();
 = Comment::join( join: 'user', condition: "user.id = comment.uid')
$commentData = $this->get_tree_list($commentData);



public function get_tree_list($data, $pid=0)
{
static $arr = [];
foreach ($data as $v){
if ($v[ 'pid ' ] == $pid){
$arr[ ]=$v;
$this->get_tree_list($data,$v [ 'cid ' ]);
}
}
return $arr
}

      https://www.runoob.com/php/php-ref-curl.html

 http.wxlogin()



public function getOpenId()
    {
        //获取传来的code
        $code = $this->request->get('code');
        //根据code处理获取改用户的openid
        $appId = "";
        $AppSecret = "";
        $url = "https://api.weixin.qq.com/sns/jscode2session?appid={$appId}&secret={$AppSecret}&js_code={$code}&grant_type=authorization_code";
        $res = curlGet($url);
       dd($res);
        return ['code'=>1,'msg'=>'请求成功','openid'=>$openId];
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值