1.如果既要web开发,又要api接口,yii是最适合使用的
2.一直很喜欢laravel,因为中间件,因为功能全,..因为自己懒吧
3.只用过lumen开发过第一个项目,因为文档少,功能不全,以后就放弃了,对于熟悉laravel的同学,如果不想学习yii.lumen是不错的选择
4.tp6是4月22号发布的,目前是预览版,很期待,tp5没用过,以后也不会用
选框架的首要条件是必须满足多入口+多配置
我已经安装了 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就读到汪曾祺这篇文章,刚好。文章中汪曾祺说一个人的写作风格是与他的气质有关系的,所谓‘文如其...
潇潇夜雨敲寒窗,瑟瑟清风掀衣袖。 黄梁一梦终觉醒, 千里姻缘付水流。 今生只为擦肩客,别后天涯君莫念。 嫣然一笑泪...