fastadmin对登录token的处理

news2024/11/14 14:44:38

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

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

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

相关文章

踩坑小结:Linux安装python环境 、安装OpenSSL

一、查看python版本 查看发现,linux上自带了python,不过是2.x版本的。 二、下载python3 2.1 下载 www.python.org/downloads/s… 可在当前目录下找到相对应的版本或者最新版本下载 也可以直接下载 Python 3.10.4 下载完在服务器上选择一个目录存放…

ffmpeg使用xfade的转场特效

ffmpeg使用xfade的转场特效 1. 介绍2. ffmpeg里面的xfade3. 使用 1. 介绍 参考文档 ffmpeg是一个音视频编辑工具,具体的。。。。我才搞接触,所以不懂。 xfade是一种视频转场滤镜,用于在两个视频片段之间创建平滑的过渡效果。xfade的转场效果…

扭亏为盈的赛力斯,真正进入稳态了吗?

“72小时内大定破1万台”。5月15日,问界新M5开启全国大规模交付,从当前取得的成绩来看,赛力斯的“富贵”似乎还将延续。 其实,此前基于问界新M7等车型的爆火,赛力斯已经找到了创收轨道。财报显示,2024年一…

戒烟网站|基于SSM+vue的戒烟网站系统的设计与实现(源码+数据库+文档)

戒烟网站 目录 基于SSM+vue的戒烟网站系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1网站功能模块 2管理员功能模块 3用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主…

每日5题Day3 - LeetCode 11 - 15

每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前! 第一题:11. 盛最多水的容器 - 力扣(LeetCode) class Solution {public int maxArea(int[] height) {//这道题比较特殊,因为两边是任意…

OPC-UA open62541 C++测试代码

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 这是之前写的open62541测试代码…

电脑版的学浪课程下载方法

想在你的电脑上无限制地访问你最爱的学浪课程吗?现在,让我揭秘如何用几个简单步骤,轻松下载任何学浪课程到你的电脑,让学习不再受时间和地点的限制,随时随地都是你的课堂。 下载学浪视频的工具,我已经打包…

计算机网络实验3:路由器安全防控配置

实验目的和要求 理解标准IP访问控制列表的原理及功能理解CHAP、DHCP配置原理了解家用式无线路由配置方法实验项目内容 标准IP访问控制列表配置 CHAP验证路由器上配置DHCP网络地址转换NAT配置无线路由实现实验环境 1. 硬件:PC机; 2. 软件:W…

SQL复习

SQL基础 包括: 数据查询:SELECT数据定义语言:CREATE、ALTER和DROP数据操纵语言:INSERT、UPDATE、DELETE数据控制语言:GRANT、REVOKE 特点: 综合统一高度非过程化面向集合既是独立的也是嵌入式语言 三…

垃圾分类管理系统java项目

文章目录 垃圾分类管理系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目(9.9¥带走) 垃圾分类管理系统 一、项目演示 垃圾分类管理系统 二、项目介绍 系统角色:管理员、用户 1、登录、注册功能…

【Arduino】Free RTOS系统

目录 1、任务创建 2、任务删除 3、延迟函数 4、示例: ESP32的SDK包中内置了FreeRTOS,在FreeRTOS中,线程(Thread)和任务(Task)的概念是相同的。每个任务就是一个线程,有着自己的一…

Go框架三件套:Gorm的基本操作

1.概述 这里的Go框架三件套是指 Web、RPC、ORM框架,具体如下: Gorm框架 gorm框架是一个已经迭代了10年的功能强大的ORM框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展。 Kitex框架 Kitex是字节内部的Golang微服务RPC框架,具有高性能…

IDEA不能创建新项目和新模块

问题: IDEA不管是创建新项目还是新模块都创建不成功,会报如下图错误 解决方案: 在电脑设置里搜索 “防火墙和网络保护” ,打开如下图所示 找到你所安装的IDEA,更改设置,选中IDEA 最后,确定&am…

行为驱动开源免费接口测试框架:karate

什么是行为驱动测试: 行为驱动测试(Behavior-Driven Testing,简称 BDT)是一种测试方法,旨在通过描述系统行为和功能来编写测试用例。BDT的重点是从用户的角度出发,描述系统应该如何行为,而不是专…

机器学习笔记 KAN网络架构简述(Kolmogorov-Arnold Networks)

一、简述 在最近的研究中,出现了号称传统多层感知器 (MLP) 的突破性替代方案,重塑了人工神经网络 (ANN) 的格局。这种创新架构被称为柯尔莫哥洛夫-阿诺德网络 (KAN),它提出了一种受柯尔莫哥洛夫-阿诺德表示定理启发的函数逼近的方法。 与 MLP 不同,MLP 依赖于各个节…

嗨动PDF编辑器怎么对pdf修改?分享修改步骤

嗨动PDF编辑器怎么对pdf修改?PDF(Portable Document Format)格式因其跨平台、不易修改的特性,在日常工作和学习中得到了广泛的应用。然而,当需要对PDF文件进行修改时,许多人可能会感到困扰。此时&#xff0…

付费解锁隐藏动力和续航,订阅制又被特斯拉玩出花了

我们知道,「订阅制」早已成互联网领域各路大厂玩烂的操作。 上到程序订阅付费使用(例如 Offics、Adobe),下到各类功能服务订阅(如影视会员、网盘会员等)。 甚至于某东、某宝等网购平台也整出了 VIP 订阅服…

2024五月母亲节嘉年华活动方案

2024以花之名 致谢母亲簪花趣味亲子五月母亲节嘉年华活动方案-43P 活动策划信息: 方案页码:43页 文件格式:PPT 方案简介: 岁月温柔治愈 母爱闪闪发光 一年一度的PY圈孝子孝女大赛即将到来 本次母亲节,“以花之名…

三分钟快速上手SpringSecurity框架

导入依赖框架 web 框架(spring-boot-starter-web) <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> springSecurity 框架(spring-boot-starter-security) <de…

MySQL基础使用指南

难度就是价值所在。大家好&#xff0c;今天给大家分享一下关于MySQL的基础使用&#xff0c;MySQL 是一个流行的关系型数据库管理系统&#xff0c;被广泛应用于各种类型的应用程序开发中。本文中将介绍 MySQL 的基础使用方法&#xff0c;包括创建数据库、创建表格以及进行增删改…