技术分享

Laravel Api实现JWT Token认证

Laravel Api实现JWT Token认证

在开发Api时,处理客户端请求之前,需要对用户进行身份认证,Laravel框架默认为我们提供了一套用户认证体系,在进行web开发时,几乎不用添加修改任何代码,可直接使用,但在进行api开发时,需要我们自己去实现,并且Laravel框架默认提供的身份认证不是jwt的,需要在数据库中增加api_token字段,记录用户认证token并进行身份校验,如果需要使用jwt,无需添加字段,需要借助三方库来实现。

后端开发 05/07

Laravel Api表单验证失败被重定向到主页

Laravel Api表单验证失败被重定向到主页

Laravel Api开发中,表单验证失败时,页面被302重定向到主页,这明显不是我们想要的结果,我们需要在表单验证失败的时候,抛出错误异常,返回错误信息给前端,Laravel表单验证失败默认重定向到主页,需要解决这个问题,我们需要定位到它的父类 Illuminate\Foundation\Http\FormRequest ,以寻求解决方案。

后端开发 05/07

Laravels实现高性能HTTP服务器

Laravels实现高性能HTTP服务器

使用Laravel 框架在应用中通过 Swoole 实现高性能 HTTP 服务器、WebSocket 服务器、协程、异步事件监听、异步任务队列、毫秒级任务调度、MySQL 线程池等高级特性,从而提高 Laravel 应用整体性能。Laravels是基于Swoole整合到Laravel框架中的三方扩展,可以很轻松实现Swoole的高性能特性,本篇将使用Laravels实现高性能HTTP服务器。

后端开发 03/20

Dockerfile PHP环境apt包加速及扩展支持(优化)

Dockerfile PHP环境apt包加速及扩展支持(优化)

之前写了一篇Dockerfile搭建PHP环境,但是存在些问题,在构建镜像的时候特别的慢,大概要一个小时,甚至会超时报错,后面我对其进行了一次优化,apt使用阿里云国内源加速,并新增了几个常用的PHP扩展:Redis,MongoDB,Swoole,最后重新构建,仅需10分钟左右,便构建完整个镜像,速度上快了几倍。

运维技术 03/19

ThinkPHP5 ini_set(): A session is active

ThinkPHP5 ini_set(): A session is active

ThinkPHP5中报了一个错:ini_set(): A session is active. You cannot change the session module's ini settings at this time。

后端开发 03/14

MySQL sql_mode的坑及严格模式详解

MySQL sql_mode的坑及严格模式详解

mysql可以为不同的客户端设置不同的sql_mode,并且每个应用能够设置他自己的会话级别的sql_mode。sql_mode会影响sql语法以及mysql显示数据的正确性。官方文档建议:当使用innodb存储引擎表时,考虑使用innodb_strict_mode模式的sql_mode,它能增量额外的错误检测功能。

后端开发 03/14

解决swoft框架redis序列化问题

解决swoft框架redis序列化问题

在swoft框架中使用redis缓存,写入字符串到redis key中,结果发现get出来的值,前面多了一串代码,仔细一看,是被序列化后的值保存在了redis中,那么是什么原因,让redis在set字符串时,默认序列化字符串呢?仔细查询文档,才发现究竟。

后端开发 03/10

解决Vue跨域的问题

解决Vue跨域的问题

如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器。这个问题可以通过 vue.config.js 中的 devServer.proxy 选项来配置。`vue` 请求后端,涉及到跨域问题,vue按照官方文档正确设置了代理,axios请求中地址也正确配置,但发现报了一个错:Proxy error: Could not proxy request

Web前端 03/08

CentOS7 Samba服务安装实现目录共享

CentOS7 Samba服务安装实现目录共享

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件。由服务器及客户端程序构成,可实现Linux目录共享,然后再Windows系统中链接访问共享目录。

运维技术 03/02

MySQL优化之实现MySQL主从复制

MySQL优化之实现MySQL主从复制

MySQL主从复制是MySQL优化的重点之一,可解决数据分布,负载均衡,备份,以及实现数据库的高可用性和容错性,本篇介绍MySQL双主热备,实现互为主从。主服务器用于写数据,从服务器监听主服务器中的二进制日志,从而来实现主从复制。

后端开发 02/21

搭建Redis Cluster集群

搭建Redis Cluster集群

Redis Cluster提供了一种运行Redis安装的方法,在该安装中,数据会 在多个Redis节点之间自动分片。Redis Cluster 在分区期间还提供了一定程度的可用性,这实际上是在某些节点出现故障或无法通信时继续操作的能力。但是,如果发生较大故障(例如,大多数主服务器不可用时),集群将停止运行。Redis Cluster自动分割在多个节点之间的数据集,一部分节点出现故障或无法与集群的其余部分通信时,继续运行的能力。

运维技术 02/08

CentOS Supervisord守护进程实现Laravel异步队列任务

CentOS Supervisord守护进程实现Laravel异步队列任务

Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动重启。在PHP框架Laravel中,提供了对队列的支持,要让队列监听常驻内存,就需要借助Supervisord守护进程工具,同时,解决使用了Supervisor后,Laravel队列被重复执行的问题。

运维技术 01/21