12月13日:跟着猫叔写代码,fastadmin中Api相关只是

本文介绍了一个关于API权限管理的实例,包括登录验证、用户信息获取等关键操作,并探讨了不同场景下的登录流程和风险控制策略。

Api权限管理

api常用返回信息实例

api获取所有方法,都在common目录下cotroller文件夹中Api.php中

/**
     * 需要登录的接口
     *
     */
    public function test2()
    {
        //$this->success('返回成功', ['action' => 'test2']);
        //判断当前用户是否登录
        //$this->success('返回成功', $this->auth->isLogin());
        //获取登录用户id
        //$this->success('返回成功', $this->auth->id);
        //获取登录用户所有信息,但不包含token
        //$this->success('返回成功', $this->auth->getUser());
        //获取当前用户token
       //   $this->success('返回成功', $this->auth->getToken());
        //获取用户的基本信息,包含token不包含用户密码
        //$this->success('返回成功', $this->auth->getUser());
        //获取当前用户请求路径
        $this->success('返回成功', $this->auth->getRequestUri());

    }
未登录返回数据
判断当前用户是否登录
获取登录用户id
获取登录用户所有信息,但不包含token
获取当前用户token
获取用户的基本信息,包含token不包含用户密码
获取当前用户请求路径

模拟小程序登录

/**
     * 无需登录的接口
     *
     */
    public function test1()
    {
        //模拟小程序端用户传入用户名
        $openid = "123456";
        $username="123456";
        //查询数据库user表中数据
        $search_res=Db::name('user')->whereOr('username',$username)->whereOr('openid',$openid)->find();
        if ($search_res){
            //如果查到该用户则返回用户id
            $this->success('返回成功',$search_res['id']);
        }else{
            $registerRes = $this->auth->register($username,$username,'','',['openid'=>$openid]);
            //如果没有查询到,即返回注册
            $this->success('执行注册',$registerRes);
        }
    }
如果执行代码未查询到该用户,则进入执行注册

已有账户,返回账户id

执行查询用户成功,跳转到登录

修改代码,用户可直接登录
直接登录

遇到的问题以及解决方法

风险

当前学习中数据库比对是使用whereor()方法,但是在实际开发中这种操作会有风险,就是openid和username只有一项符合,即可直接登录

解决办法

第一种

执行注册时监听用户的id和token

注册成功后监听当前用户id和token
监听到的token和id,登录后z展示与id相符合的用户

第二种

编写退出操作,执行成功后,不会直接登录,会退出让用户再次进行登录操作

注册后退出操作,让用户重新进行登录
执行注册,重新登陆

登录之后的token怎么处理

token如何在传递中如何带上数据

两种方法

第一种方法:body中带上token
第二种方法:header中带上token

token处理官方文档

token的官方文档

每次只能使用当前获取到的token才可进行登录

Token获取到之后,操作token的方法都在common目录下的Token.php中

前端官方文档(前端 - FastAdmin框架文档 - FastAdmin开发文档

 table(常用)(表格的详细介绍以及使用:一张图解析FastAdmin中的表格列表的功能 - FastAdmin问答社区

表单(常用)(详细文档:前端 - FastAdmin框架文档 - FastAdmin开发文档

动态下拉菜单(官方文档:动态下拉(SelectPage) - FastAdmin框架文档 - FastAdmin开发文档

前端添加

搜索添加

 后端引入js的方法

(注入js)

<script>
    function zhuruJs(url) {
        let temp = document.createElement('script');
        temp.setAttribute('type','text/javascript');
        temp.src = url;
        document.head.appendChild(temp);
    }
    zhuruJs(location.origin + '/assets/js/ceshi.js');
</script>

可以分别放入你想显示的前端页面,如果想显示在某个模块下的所有页面,则将这段代码放入模块的js文件中即可

权限管理树形结构实现

首先需要找到当前后台权限管理树形结构的源代码位置

 jstree的中文官网(jsTree 中文网

首先需要在控制器的ceshi.php中声明数据

 public function testtree(){
        $data = '[{
            "id": 1,
            "parent": #,
            "text":"控制台",
            "type":"menu",
            "state":{
                "selected":true
            }
        },{
            "id": 13,
            "parent": 1,
            "text":"查看",
            "type":"menu",
            "state":{
                "selected":true
            }
        },{
            "id": 16,
            "parent": 1,
            "text":"删除",
            "type":"menu",
            "state":{
                "selected":true
            }
        },{
            "id": 2,
            "parent": #,
            "text":"菜单",
            "type":"menu",
            "state":{
                "selected":true
            }
        },{
            "id": 15,
            "parent": 2,
            "text":"增加",
            "type":"menu",
            "state":{
                "selected":true
            }
        },{
            "id": 19,
            "parent": 2,
            "text":"编辑",
            "type":"menu",
            "state":{
                "selected":true
            }
        }]';
    }

然后需要在js文件中引入jstree并且使用ajax传递数据

 前端页面,空标签用来接收

 由于我的有问题,无法实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值