| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> thinphp6 tp6 api接口开发,token(jwt)登录验证 -> 正文阅读 |
|
[PHP知识库]thinphp6 tp6 api接口开发,token(jwt)登录验证 |
? ? 用phpmyadmin创建数据库,并在.env文件中填写数据库信息;user表字段为: ?然后编辑控制器 user.index 方法: 浏览器打开:正常显示; 然后再次编辑user.index.方法,这时我们显示点别的,就显示数据库user模型的内容;
效果如下: ? ?和数据库是对应的,如果有错误,把config/app.php的?'show_error_msg'?? => true打开,显示错误信息;example.env改成.env,然后配置数据库连接信息; 以下非常简单,有点tp基础的都可以弄;下面,继续; api请求是json格式的,如何让请求的内容为json;如果为api快速创建路由: 1.资源路由; 编辑:route/app.php,增加一条资源 路由;
?然后可以用命令查看: 这样一来,直接编辑User控制器的方法就行了;资源路由己经默认创建了一些方法; 我们编辑这些方法让其返回json数据,核心代码就是:
说白了,就是用tp的Response对象的create建立一个响应,类型为json,好,下面来封装这个方法,让他好看点; 在app\controller控制器目录下建立 Base.php,这个是虚基类,让其它控制器继承: ?修改User控制器:
显示结果就是json数据了: ?下面,来个分页:也是编辑user.index控制器方法:
? ?第二页:注意url参数: ?完善User.read控制器方法,使其能访问/user/2 (访问id为2的用户信息)
?其它的save,delete,就不写了,自己完善,这时,请求api,以json返回就可以了;现在,我们来做token验证; 1.安装 jwt;
创建一个token服务 ,会在app/service目录下生成Token.php,然后修改Token.php文件,这个文件基本上就是生成token字符串,校验的作用;自己手工创建也是一样的;
然后,我们创建一个中间件,用于检测token,如果没有token,就给客户端(前端)返回错误,提示没有登录 什么的。。。
这条命令会在app\middleware下创建Auth.php中间件,中间件有全局,控制器,路由三种,这里我们用路由中间件; 我们修改这个中间件(Auth.php):
这个中间件的作用是:从请求头中读取token,然后调用TokenServer类的checkToken()方法来检测这个token是否正确,如果正确,就什么都不干,直接把请求加上一个uid后,直接next,这个next,就是下一步,假设请求路由是?http://localhost/index.php/user/2,token也正确,这时他会直接返回请求内容,中间件就像不存在一样,但是,一但客户没有token(未登录),或是token错误(过期),这时,他就不会返回请求内容,而是 return [ error_code 999 当然,这里也可以转向到Login登录页;提示前端登录 ,访问了需要授权登录 的页面; |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 7:49:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |