tp和laravel 做 API接口哪个会比较好一点?

我已经安装了 Ubuntu LAMP 堆栈。但是没有启用 cURL,我也找不到 INI 文件中列出的扩展名。我手动添加了它,但它也不起作用。

那我应该如何启用 cURL 呢?


安装 libcurl 后,您应该使用以下命令之一重新启动 Web 服务器,


 随着前后端完全分离,`PHP`也基本告别了`view`模板嵌套开发,转而专门写资源接口。`Laravel`PHP框架中最优雅的框架,国内也越来越多人告别`ThinkPHP`选择了`Laravel``Laravel`框架本身对`API`有支持,但是感觉再工作中还是需要再做一些处理。`Lumen`用起来不顺手,有些包不能很好地支持。所以,将`Laravel`框架进行一些配置处理,让其在开发`API`时更得心应手。
 


我们其实是可以拿到这些荷载信息的。同时,我们也可以加入自己的信息,这样在中间件时候进行解析,拿到我们的负载,就可以进行判断是否是属于当前guard的token了。
 
//获取当前守护的名称
// 检查此次请求中是否带有 token,如果没有则抛出异常。 //1. 格式通过,验证是否是专属于这个的token //获取当前守护的名称 //即使过期了,也能获取到token里的 载荷 信息。 //如果不包含guard字段或者guard所对应的值与当前的guard守护值不相同 // 检测用户的登录状态,如果正常则通过 // 使用一次性登录以保证此次请求的成功 // 如果捕获到此异常,即代表 refresh 也过期了,用户无法刷新令牌,需要重新登录。

这个中间件是通用的,可以直接替换User的刷新用户认证中间件噢

 
 
此时再次进行测试是否串号,最后结果可以成功阻止之前的串号问题,暂未发现其他BUG。

user的修复串号问题请自己修改,这里就不再啰嗦一遍了。

 
 
 
同一时间只允许登录唯一一台设备。例如设备 A 中用户如果已经登录,那么使用设备 B 登录同一账户,设备 A 就无法继续使用了。
 
我们在登陆,token过期自动更换的时候,都会产生一个新的token
我们将token都存到表中的last_token字段。在登陆接口,获取到last_token里的值,将其加入黑名单。
这样,只要我们无论在哪里登陆,之前的token一定会被拉黑失效,必须重新登陆,我们的目的也就达到了。
 
//获取当前守护的名称 //如果登陆,先检查原先是否有存token,有的话先失效,然后再存入最新的token //因为让一个过期的token再失效,会抛出异常,所以我们捕捉异常,不需要做任何处理
// 检查此次请求中是否带有 token,如果没有则抛出异常。 //1. 格式通过,验证是否是专属于这个的token //获取当前守护的名称 //即使过期了,也能获取到token里的 载荷 信息。 //如果不包含guard字段或者guard所对应的值与当前的guard守护值不相同 // 检测用户的登录状态,如果正常则通过 // 使用一次性登录以保证此次请求的成功 // 如果捕获到此异常,即代表 refresh 也过期了,用户无法刷新令牌,需要重新登录。
 

user的请自行添加,自行测试结果

 
 
开发中,我们也经常需要使用异步队列,来加快我们的响应速度。比如发送短信,发送验证码等。但是队列执行结果的成功或者失败只能通过日志来查看。这里,我们使用horizon来管理异步队列,完成登陆和刷新token时,将token存入last_token的因为放在异步完成。

Horizon 提供了一个漂亮的仪表盘,并且可以通过代码配置你的 Laravel Redis 队列,同时它允许你轻易的监控你的队列系统中诸如任务吞吐量,运行时间和失败任务等关键指标。

 
 
horizon的详细介绍可以。
 
 
 
仪表盘不能通过接口访问。所以我们做验证的时候,可以通过指定的IP才能正常通过进入仪表盘。IP可以写在.env文件里,当IP发生变化时进行修改。
.env 最后加上一行
 
创建一个专门负责保存last_token的任务类
 

 
此时,进程处于阻塞状态。
打开浏览器输入http://你的域名/horizon,可以看到Horizon仪表盘。
 
我们可以使用Supervisor来守护我们的horizon阻塞进程。具体方法可以看我之前写的文章:
 
确认horizon已经正常启动。然后我们访问/api/v1/admin/login这个登陆接口。打开数据库可以发现,last_token与返回结果的token相同。我们也可以再打开仪表盘,看任务完成情况
 
如果修改了job类的源码,需要将horizon重新启动,否则代码还是未改动前的。(应该是horzion是将所有任务类常驻内存的原因)
到此,所有修改已经全部完成,如果还有新的更改也会实时更新。同时,本文中的所有修改都已经在正式项目中运行过了。
如果你已经看完了整篇文章,知道了修改的原因,但是不想受累自己修改一遍。我已经将修改后的上传到全球最大的同性交友网站了,可以直接点击直接搬走。或者复制下方的链接打开。

本作品采用,转载必须注明作者和本文链接

1.如果既要web开发,又要api接口,yii是最适合使用的

2.一直很喜欢laravel,因为中间件,因为功能全,..因为自己懒吧

3.只用过lumen开发过第一个项目,因为文档少,功能不全,以后就放弃了,对于熟悉laravel的同学,如果不想学习yii.lumen是不错的选择

4.tp6是4月22号发布的,目前是预览版,很期待,tp5没用过,以后也不会用

选框架的首要条件是必须满足多入口+多配置

  • 一、框架概述 课程概述 laravel 4天(之前TP框架还是很大的区别)(国外框架) 在线教育平台 6天(lar...

  • 打算从三个比较普遍常用的框架带领那些初入门的小伙伴(老鸟勿喷)快速上手一个框架,期间会分享一些自己的编码习...

  • 为什么Laravel会脱颖而出 在动态Web开发的早期,编写一个Web应用看起来是非常不同和当今相比。开发者们不仅...

  • 在每一分钟就是一个新世界的207年,“平凡”一词被提起的次数越来越少,那平凡到底代表人生中的什么阶段?有人说,是买...

  • 初加入007就读到汪曾祺这篇文章,刚好。文章中汪曾祺说一个人的写作风格是与他的气质有关系的,所谓‘文如其...

  • 潇潇夜雨敲寒窗,瑟瑟清风掀衣袖。 黄梁一梦终觉醒, 千里姻缘付水流。 今生只为擦肩客,别后天涯君莫念。 嫣然一笑泪...

我要回帖

更多关于 php写接口用什么框架 的文章

 

随机推荐