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

news2024/11/28 20:41:13

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传递数据

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/85409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1. Python_Django项目之大型电商项目介绍

1.开发项目目的 联系已掌握的知识点发现新的知识点掌握开发技巧掌握项目结构增加项目经验 2.所用技术 语言&#xff1a;Python3&#xff08;Django4&#xff09;数据库&#xff1a;MySQLweb服务器&#xff1a;Nginxuwsgi开发环境&#xff1a;VScode、linux 3.功能介绍 商品…

动态规划——背包问题(3)

文章目录求解最佳方案数例题思路代码混合背包问题例题思路代码有依赖的背包问题例题思路代码考察思维的一些背包题目机器分配金明的预算方案货币系统能量石总结求解最佳方案数 例题 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi&#…

springboot前后端交互(小白教学)

在上次前后端交互&#xff0c;我们使用的是最基本的HTMLServlet的组合&#xff0c;比较基础&#xff0c;今天我们来讲一讲HtmlSpringboot框架&#xff0c;前后端交互实现更为简便&#xff0c;大大降低了我们开发人员在代码上面所花费的时间&#xff0c;那今天让我们一探究竟吧。…

1998-2014年工企污染数据库

1998-2014年工企污染匹配数据库 1、时间区间为&#xff1a;1998-2014年 2、部分指标&#xff1a; 工业总产值(现价)&#xff08;万元&#xff09;、工业用水总量&#xff08;吨&#xff09;、煤炭消费总量&#xff08;吨&#xff09;、其中:新鲜水量&#xff08;吨&#xff…

是谁实现了 Pod 的多副本管理?

目录一、前言二、案例分析三、案例总结一、前言 在 K8s 中 Pod 是由 Controller 来管理的&#xff0c;Controller 定义了 Pod 的部署 spec&#xff0c;如 Pod 的副本数、运行的 Node 等。不同的业务场景 Controller 是不同的。K8s 提供了多种 Controller&#xff0c;如常见的 …

POCV/SOCV 、LVF

1.POCV与OCV、AOCV 为了模拟片上PVT的差异带来的影响&#xff0c;最早提出了OCV&#xff08;On Chip Variation&#xff09;给每个cell都设置一个固定的derate值&#xff0c;来覆盖最悲观的情况&#xff0c;但是随着工艺发展&#xff0c;设计规模增大&#xff0c;OCV过度的悲观…

Docker之Nacos的持久化和集群部署

目录 一、外网单节点部署 1.docker mysql:5.7的持久化存储及远程连接 1.下拉镜像 2.在宿主机中相关目录&#xff0c;用于挂载容器的相关数据 3.创建mysql5.7容器 4.修改mysql允许Navicat远程连接 5.创建数据库nacos_config&#xff0c;并进行初始化 ​编辑 2. nacos-d…

DNS解析过程以及基本原理

目录 1.什么是 DNS 2.分布式、层次数据库 A.什么是分布式&#xff1f; B.什么是层次&#xff1f; D.什么是根 DNS 服务器 E.顶级域 DNS 服务器 F.权威 DNS 服务器 3.本地 DNS 服务器 4.递归查询、迭代查询 A.图解DNS解析过程 B.解析过程当中的递归解析和迭代解析 5…

STM8开发实例-IAR开发环境搭建

IAR开发环境搭建 IAR Embedded Workbench for STM8 是一个集成开发环境,具有高度优化的 C/C++ 编译器和全面的 C-SPY 调试器。 它为 STM8A、STM8L、STM8S、STM8T、STNRG 和 STLUX 系列中的器件提供全面支持。 1、IAR下载并安装 IAR Embedded Workbench For STM8官方下载地址…

3U 轨道交通车载工业级M12 PoE交换机,防护等级IP66

支持软硬件定制服务的轨道交通工业交换机 支持双电源冗余 支持Bypass 专门为轨道交通应用设计和制造的以太网数据通信设备 根据IEC61375-2-5和IEC61375-2-3协议实现的列车级骨干以太网核心设备 支持中国铁路 产品认证 XM-5145工业交换机是专为轨道交通、船载、车载等恶劣环…

非零基础自学Golang 第2章 安装和运行Go 2.1 GOROOT和GOPATH 2.2 在Windows 下安装Go

非零基础自学Golang 文章目录非零基础自学Golang第2章 安装和运行Go2.1 GOROOT和GOPATH2.2 在Windows 下安装Go第2章 安装和运行Go Go的安装主要分为两种方式&#xff1a;安装包安装和源代码安装&#xff1a; 安装包安装&#xff1a;即已编译好的可直接运行的程序&#xff0c…

145.如何评价个性化推荐系统的效果-2

145.1 E值 E值表示查准率P和查全率R的加权平均值&#xff0c;当其中一个为0时&#xff0c;E值为1&#xff0c;其计算公式&#xff1a; b越大&#xff0c;表示查准率的权重越大。 145.2 平均正确率&#xff08;Average Precision&#xff09; 平均正确率表示不同查全率的点…

【Effective Objective - C】—— 读书笔记(三)

【Effective Objective - C】—— 读书笔记&#xff08;三&#xff09; 文章目录【Effective Objective - C】—— 读书笔记&#xff08;三&#xff09;15.用前缀避免命名空间冲突要点&#xff1a;16.提供“全能初始化方法”要点17.实现description方法debugDescription&#x…

2023年Python、Golang、Java、C++如何选择?

前言 我们都有知道&#xff0c;开发后台语言可选择的方向会很多&#xff0c;比如&#xff0c;Java&#xff0c;go,Python,C/C,PHP&#xff0c;NodeJs…等很多&#xff0c;那么他们都有什么的样的优势&#xff1f;如果学习一门后端语言&#xff0c;又该如何选择呢&#xff1f; …

DolphinScheduler 快速构建 Hugging Face 文本分类工作流,基于工作流的机器学习训练部署太强了!...

点亮 ⭐️ Star 照亮开源之路https://github.com/apache/dolphinscheduler01.摘要Hugging Face transformers 是一个用于构建、训练和部署最先进的NLP 模型的开源项目。本文介绍如何基于DolphinScheduler和Hugging Face transformers来构建可复用的高效文本分类的工作流&#…

第36篇 网络(六)UDP

导语 这一节讲述UDP编程的知识。UDP&#xff08;UserDatagram Protocol即用户数据报协议&#xff09;是一个轻量级的&#xff0c;不可靠的&#xff0c;面向数据报的无连接协议。对于UDP我们不再进行过多介绍&#xff0c;如果你对UDP不是很了解&#xff0c;而且不知道它有什么用…

web网页设计期末课程大作业——电影介绍5页HTML+CSS制作

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

深入理解计算机系统——第十一章 Network Programming

深入理解计算机系统——第十一章 Network Programming11.1 The Client-Server Programming Model11.2 Networks11.3 The Global IP Internet11.3.1 IP Addresses11.3.2 Internet Domain Names11.3.3 Internet Connections11.4 The Sockets Interface11.4.1 Socket Address Stru…

项目要求移动端适配和 分段视觉映射在ECharts框架里的运用【高级ECharts技术】

移动端适配 满足多个查询时的优先级: 请注意,可以同时满足多个查询,并且它们都将由mergeOption合并,mergeOption稍后由merge定义(即更高的优先级)。 默认查询: 如果媒体中有一项不写入查询,则表示“默认值”。也就是说,如果不符合所有规则,则采用此选项。 容器尺寸实…

web前端期末大作业:基于HTML+CSS+JavaScript奥迪企业bootstrap响应式网站

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…