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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值