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()]);}//登陆测试方法,测试出tokenpublic 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的源码,看下发生了什么

//登陆测试方法,测试出tokenpublic 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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

错误: 找不到或无法加载主类问题(已解决)

今天在虚拟机中安装了idea2023.2的版本,运行代码时发现错误找不到主类! 直接说结论: 我先clean了一下target,然后重新build,发现maven报错了,idea2023.2默认使用了内置的maven,然后我切换了一下…

Yalmip使用教程(8)-常见报错及调试方法

博客中所有内容均来源于自己学习过程中积累的经验以及对yalmip官方文档的翻译:https://yalmip.github.io/tutorials/ 这篇博客将详细介绍使用yalmip工具箱编程过程中的常见错误和相应的解决办法。 1.optimize的输出参数 众所周知,optimize是yalmip用来求…

中国农业大学:学硕11408复试线上涨40分,今年还会持续涨吗?中国农业大学计算机考研考情分析!

中国农业大学(China Agricultural University),简称“中国农大”,坐落于中国首都北京,由中华人民共和国教育部直属,中央直管副部级建制,水利部、农业部和北京市共建,位列国家“双一流…

解决kali Linux2024无法获取动态IPv4地址(DHCP)解决方案

用root用户启动终端 进入根目录,选择配置文件 cd到根目录下/../etc/network找到interfaces文件 编辑interfaces文件 vi interfaces,编辑interfaces文件 输入如下命令 打开虚拟网络编辑器 选择虚拟机选项卡,编辑,打开虚拟网络编…

Jmeter(四十一) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 下篇(详解教程)

宏哥微信粉丝群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是…

tag-字符串:最长公共前缀

题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 题解一 class Solution:def longestCommonPrefix(self, strs: List[str]) -> str:# 按照字典顺序找到strs中最大的字符串和最小的字符串str0 min(strs)st…

51单片机超声波测距_液位检测_温度检测原理图PCB仿真代码

目录 实物图: PCB ​原理图​ 仿真图 ​编辑 程序 资料下载地址:51单片机超声波测距-液位检测-温度检测原理图PCB仿真代码 主控为stc89c52,通过ds18b20进行温度采集,超声波测距,距离不可以超过1m,通过按键可以设…

Java面试八股之List、Set、Map和Queue之间的区别

Java中List、Set、Map和Queue之间的区别 List List 是一个有序且允许重复元素的集合。它提供了按索引访问元素的能力,也就是说,你可以通过元素的插入位置或指定的索引来精确地访问、添加或删除元素。List 的典型实现包括 ArrayList 和 LinkedList。 特…

喜茶·茶坊黑金首店入驻北京三里屯,率先引入珍稀娟姗奶制茶

发布 | 大力财经 近日,喜茶茶坊 BLACK 在北京三里屯开业,这是喜茶新业态的首家黑金店型。该店在延续喜茶茶坊“鲜、茶、纯”的精品茗茶特色和宋代茶文化审美意趣的基础上,首次升级呈现了铜锅手煮烹茶工艺、娟姗牛乳制茶等创新尝试&#xff0…

【C++ 高阶数据结构 Test】AVL ~ 二叉搜索树

文章目录 1. AVL 树概念2. AVL 树节点的定义3. AVL树的插入4. AVL树的旋转4.1 新节点插入较高左子树的左侧---左左:右单旋4.2 新节点插入较高右子树的右侧---右右:左单旋4.3 新节点插入较高左子树的右侧---左右:先左单旋再右单旋4.4 新节点插…

电工能混到这份上

最近看到某电工师傅发了一篇帖子,大致内容是他在处理一个简单故障的时候居然花了很长的时间。我们一起来看看他遇到的是什么故障吧! plc 控制的一台设备,行走部分靠 2 个脚踏开关控制(内部开关量控制方向,电位器控制速度&#xff…

微信小程序快速开发-基础内容(内容真的又多又干货)

目录 实现横向布局效果 实现滚动效果 实现轮播图效果 实现文本长按选中复制效果 渲染 HTML 标签 按钮组件的使用效果 图片组件的使用效果 Mustache 语法 动态绑定内容(定义变量,渲染变量) 动态绑定属性(将属性定义为变量…