fastadmin对登录token的处理

fastadmin对token的操作

最近开发遇到一个场景,需要绕过验证获取登录,所以恶补了一下这个知识点,这个主要就是控制fastadmin的token的问题

代码分步实现

class Xcxuser extends Api
{
    //关于鉴权
    protected $noNeedLogin = ['login','getopenid','test1'];//不需要登录
    protected $noNeedRight=['ceshi','test2','test3'];//需要登陆,不需要健权

	//不需要登录的操作接口
    public function test1(){
        return '不登陆就可以显示的操作';
    }

    //需要登录的操作接口
    public function test2(){

        return '登陆成功后的操作';
    }

	//打印账户信息的接口
    public function test3(){
        $this->success('登陆成功',['action'=> $this->auth->getUserinfo()]);
    }
    
    
    //登陆测试方法,测试出token
    public function login(){
        $password = 1234243563242424242;
        $username = 1234243563242424242;

        $search_res = model('user')->whereOr('username',$username)->whereOr('openid',$password)->find();
        if ($search_res){
            $loginRes = $this->auth->direct($search_res['id']);//direct:直接登录账号
            $token = $this->auth->getToken();
            Cookie::set('uid',$this->auth->id);
            Cookie::set('token',$token);
            $this->success('登陆成功',["token"=>$token]);
        }

    }
}

这里首先测试test1,test2,test3
test1是属于不需要登录,test2属于需要登陆
test1
在这里插入图片描述
test2
在这里插入图片描述
test3

在这里插入图片描述

现在test2与test3是无法打印的状态

然后就运行login方法模拟登录,这里的登录数据需要数据库中的真实数据

在这里插入图片描述
这里看下login的源码,看下发生了什么

//登陆测试方法,测试出token
    public function login(){
        $password = 1234243563242424242;
        $username = 1234243563242424242;

        $search_res = model('user')->whereOr('username',$username)->whereOr('openid',$password)->find();
        if ($search_res){
            $loginRes = $this->auth->direct($search_res['id']);//direct:直接登录账号
            $token = $this->auth->getToken();
            Cookie::set('uid',$this->auth->id);
            Cookie::set('token',$token);
            $this->success('登陆成功',["token"=>$token]);
        }

    }

然后使用

这里首先是通过password和openid模拟了登录,这里有一个有意思的方法

direct() 

看下是什么方法
在这里插入图片描述
是一个直接登录账号方法,只需要传入id

然后在登录方法结束后会打印token
然后将token作为请求头发送给test2和test3看看会发生什么

在这里插入图片描述
test2成功打印
在这里插入图片描述
test3打印完成后打印出了用户的全部信息
这里附上原作者的视频教学文件
https://www.bilibili.com/video/BV1Ji4y1V7ZV

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java:使用BigDecimal、NumberFormat和DecimalFormat保留小数

一、代码和调试结果 1.1 BigDecimal ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/fa36749de8124266a730817710fdf737.png) 1.2 DecimalFormat 1.3 NumberFormat 二、原代码 BigDecimalUtil.java 代码 package utils;import java.math.BigDecimal; import jav…

【Qt】Qt开源项目

1、Flameshot 截图工具 1.1 简介 Flameshot是一款功能强大但易于使用的屏幕截图软件,中文名称火焰截图。 Flameshot 简单易用并有一个CLI版本,所以可以从命令行来进行截图。 Flameshot 是一个Linux发行版中完全免费且开源的截图工具 1.2 源码 github:https://github.com…

申请一个开发者域名

申请一个开发者域名 教程 fourm.js.org 因本地没安装 hexo 环境,模板下载的 html

代理IP与网络隐私

随着科技的发展,越来越多的人开始享受网络的便利,人们逐步在社交媒体上分享自己的生活。这些公开信息是可以被所有人浏览观看的,但是也会存在部分隐私信息我们并不想要被人知晓,这就牵扯到网络隐私保护问题。 代理IP对于网络隐私保…

char x[]---char*---string---sizeof

字符串数组 #include <iostream>int main(){char c_str[]"abcd";char c_str1[]{a,b,c,d};std::cout<<sizeof(c_str)<<std::endl;std::cout<<sizeof(c_str1)<<std::endl;return 0; } char*存储的字符串个数 char*字符串所占字节大小 c…

Shell之高效文本处理命令

目录 一、排序命令—sort 基本语法 常用选项 二、去重命令—uniq 基本语法 常用选项 三、替换命令—tr 基本语法&#xff1a; 常用选项 四、裁剪命令—cut 基本语法&#xff1a; 常用选项 字符串分片 五、拆分命令—split 基本语法&#xff1a; 六、 文件…

【if条件、for循环、数据框连接、表达矩阵画箱线图】

编程能力&#xff0c;就是解决问题的能力&#xff0c;也是变优秀的能力 From 生物技能树 R语言基础第七节 文章目录 1.长脚本管理方式if(F){....}分成多个脚本&#xff0c;每个脚本最后保存Rdata&#xff0c;下一个脚本开头清空再加载 2.实战项目的组织方式方法&#xff08;一&…

【微服务最全详解】

文章目录 微服务微服务的介绍微服务服务架构演变 微服务网关微服务的负载均衡微服务的容灾机制服务崩溃服务容灾机制微服务熔断机制微服务限流Sentinel怎么实现限流微服务限流算法1.令牌桶算法2.漏斗桶算法 服务监控日志收集 微服务 微服务的介绍 微服务是一种软件架构风格&a…

上班族兼职新篇章:10大实战攻略,轻松年赚1-20万

对于众多上班族而言&#xff0c;如何在工作之余赚取额外收入&#xff0c;开启自己的第一份副业&#xff0c;已成为许多人心中的疑问。每个人的才能和兴趣点不尽相同&#xff0c;但都有机会找到适合自己的兼职方式。接下来&#xff0c;就让我们一起探索这10大实战攻略&#xff0…

Google Ads谷歌广告账户被封停怎么办?

跨境出海业务少不了需要做Google Ads推广业务&#xff1b;其中让投手们闻风丧胆的消息就是帐户被暂停。当 Google 检测到任何违反其政策且可能损害用户在线体验的行为时&#xff0c;就会发生这种情况。那么如何在做广告推广的同时&#xff0c;保证账号不被封禁呢&#xff1f;看…

基于单片机的智能安防系统设计(32+4G+WIFI版)-设计说明书

设计摘要&#xff1a; 本设计基于STM32单片机&#xff0c;旨在实现一个智能安防系统&#xff0c;主要包括烟雾和温度传感器、人体红外传感器、显示屏、按键、4G模块和WiFi模块等组件。通过这些组件的协作&#xff0c;实现了火灾检测、入侵监测、状态显示、用户交互和远程通信等…

AI高清逼真换脸换装

在我们的最新AI换脸换装技术中&#xff0c;我们将高度真实的视觉效果与创新的人工智能技术相结合&#xff0c;提供了前所未有的个性化数字体验。无论是为了娱乐、广告、电影制作还是个人化虚拟体验&#xff0c;我们的技术都能让你的想象无缝转换为现实。通过我们的平台&#xf…

Linux命令使用

一、ls tree clear 1.1 ls ls&#xff1a;查看当前目录下的文件名ls 目录名&#xff1a;查看指定目录下的文件名ls /&#xff1a;查看根目录下的文件名ls -a&#xff1a;查看当前目录下的所有文件名&#xff0c;包括隐藏文件ls -l&#xff1a;查看当前目录下文件的详细信息…

Blender雕刻建模_笔刷纹理和顶点绘制

笔刷纹理 主要用于皮肤&#xff0c;纹理的雕刻。 可以修改映射方式来实现不同绘制效果。 用一张纹理来定义笔刷各个点的强度。其中白色为1&#xff0c;黑色为0。 设置笔刷纹理步骤&#xff1a; -新建一套笔刷 -强度&#xff0c;设为0.15&#xff08;可以根据需求修改&#x…

数据结构与算法笔记(一)---时间复杂度与空间复杂度

前言 以自述式的笔记展示&#xff0c;尽可能用最好理解的方式去叙述我对知识点的理解&#xff0c;方便有需求的小伙伴查看理解&#xff0c;同时锻炼自身的表达能力&#xff0c;共同学习&#xff0c;共同进步&#xff0c;争取“双赢”&#xff01; 注&#xff1a;本文章根据自…

Java面试八股之WeakHashMap的工作原理

简述WeakHashMap的工作原理 弱键&#xff08;Weak Keys&#xff09;&#xff1a; WeakHashMap 的键&#xff08;keys&#xff09;是通过 WeakReference 弱引用进行封装的。弱引用是一种特殊的引用类型&#xff0c;它不会阻止所引用的对象被垃圾收集器回收。这意味着&#xff…

机器人操作系统ROS2学习—控制小海龟运动

将Ubuntu系统和ROS2安装完成后&#xff0c;就可以进行调用小海龟运动了。 一、打开Ubuntu系统后&#xff0c;调用终端窗口。有3 种方法可以打开启动终端: 1、通过快捷键CtrAItT; 2、桌面左下角有个显示应用的菜单&#xff0c;点击后找到终端“Terminal”图标&#xff0c;打…

kubernetes二进制多master部署

文章目录 一、master02 节点部署&#xff08;在上期博客部署完成的情况下&#xff09;1、准备master02节点需要的文件2、修改配置文件kube-apiserver中的IP3、启动各服务并设置开机自启4、查看node节点状态 二、负载均衡部署1、配置load balancer集群双机热备负载均衡1.1 准备n…

英飞凌SiC模块为小米电动车提供动力

至2027年之际&#xff0c;SiC功率模块与裸片产品将荣耀登场&#xff0c;助力小米电动汽车新品SU7璀璨问世。英飞凌&#xff0c;这家业界翘楚&#xff0c;将倾其所能&#xff0c;为小米SU7 Max提供两颗HybridPACK Drive G2 CoolSiC 1200 V模块&#xff0c;如同给电动汽车的心脏注…

万字长文破解 AI 图片生成算法-Stable diffusion (第一篇)

想象一下&#xff1a;你闭上眼睛&#xff0c;脑海中构思一个场景&#xff0c;用简短的语言描述出来&#xff0c;然后“啪”的一声&#xff0c;一张栩栩如生的图片就出现在你眼前。这不再是科幻小说里才有的情节&#xff0c;而是Stable Diffusion——一种前沿的AI图片生成算法—…