[ Laravel 从入门到精通 ] 请求与响应系列 —— Laravel 请求对象 Request 类剖析

我们已经知道,在 Laravel 框架中,需要通过 Request 对象来获取用户请求信息,该对象引用的完整类名是 Illuminate\Http\Request,而该请求类又继承自 Symfony 的 Symfony\Component\HttpFoundation\Request,所以在介绍 Laravel 的 Request 之前,需要先对 Symfony 底层的 Request ...

解决 Laravel JWT 多表认证时获取不到当前认证用户的问题

问题描述 最近在做一个项目,需要多表认证,分别为admin和user表,我采用的JWT认证方式,但今天遇到了一个问题:使用Auth::user()返回null,也就是说无法获得当前认证的用户。 网上搜索后,并没有找到直接的解决方案,然后经过几次尝试居然误打误撞地解决了,所以特地记录下来,希望遇到同样问题的人不要再在这问题上耗费太多时间。 注意:这里并不介绍JWT的工作原理和配置,如果想理...

Lumen 使用 throttle 限制接口访问频率

前言 今天碰到过这样一个情况,我需要限制用户请求某个API接口的频率,比如登录、反馈等提交操作,经过一番搜索+折腾,总算是实现了。 在Laravel 5.2的新特性中增加了一个throttle中间件,通过它可以在路由层限制API访问的频率。例如限制频率为1分钟50次,如果一分钟内超过了这个限制,它就会响应:429: Too Many Attempts。 但我在项目中使用的是Lumen...

[ Laravel 从入门到精通 ] 请求与响应系列 —— Laravel 底层是如何处理 HTTP 请求的

总体流程 Web 服务器对 HTTP 请求的处理流程大体上都是这样的:在某个端口监听请求,请求进入后运行程序,然后将程序运行结果以响应的形式发送出去。 基于 Laravel 框架构建的 Web 应用处理 HTTP 请求的流程也是如此。所有 HTTP 请求都会被转发到单入口文件 public/index.php,处理 HTTP 请求的核心代码如下(忽略 HTTP 请求处理之外的代码): ...

基于 Swoole 构建高性能 Laravel 应用系列 —— 基于 Swoole 实现高性能 HTTP 服务器

在上篇教程中,学院君给大家介绍了 Swoole 的基本概念和安装配置,从这篇教程开始,学院君将结合 Laravel 框架在应用中通过 Swoole 实现高性能 HTTP 服务器、WebSocket 服务器、协程、异步事件监听、异步任务队列、毫秒级任务调度、MySQL 线程池等高级特性,从而提高 Laravel 应用整体性能。 当然,这些特性都是 Swoole 底层所支持的,并且已经有第三...

负载均衡、分布式、集群的理解以及多台服务器代码如何同步

下面一次解释下这些名词的概念 集群 我们的项目如果跑在一台机器上,如果这台机器出现故障的话,或者用户请求量比较高,一台机器支撑不住的话。我们的网站可能就访问不了。那怎么解决呢?就需要使用多台机器,部署一样的程序,让几个机器同时的运行我们的网站。那怎么怎么分发请求的我们的所有机器上。所以负载均衡的概念就出现了。 负载均衡 负载均衡是指基于反向代理能将现在所有的请求根据指定的策略算法,分发到...

基于 JWT 实现 Laravel API 认证

什么是jwt jwt单词代表的意思就是JSON Web Token。 我们在做api请求的时候,通常要使用token,来验证是否这个请求能不能访问。 一旦用户登录,后续每个请求都将包含JWT,允许用户访问该令牌允许的路由、服务和资源。单点登录是现在广泛使用的JWT的一个特性,因为它的开销很小,并且可以轻松地跨域使用。 为什么使用jwt Session是在服务器端的,而JWT是在客户...

Laravel 前端最佳实践

Laravel Mix Laravel在与前端相结合这块做的很不错,提供了Laravel Mix Laravel Mix 提供了简洁且可读性高的 API ,用于使用几个常见的 CSS 和 JavaScript 预处理器为应用定义 Webpack 构建步骤。可以通过简单链式调用来定义资源的编译。 我们可以自己使用sass,npm,es6语法,压缩,生成随机文件名,通过webpack打包生成...

如何开发 Laravel 扩展包并发布到 Composer

如何开发扩展包 我们来做一个根据第一个字符或者汉字生成头像的laravel扩展包。其实原理就是我们自己去写一个服务提供者,把服务提供者配置到app/providers数组中。 1.第一步现在自己项目中跟目录创建packages/cxp/avatar/src 2.修改 composer.json "psr-4": { "App\\": "app/", "Cxp\\Avata...