Ubuntu系统下安装LNMP
php123456789101112131415# 添加源sudo apt -y install software-properties-commonsudo add-apt-repository ppa:ondrej/php# 更新源sudo apt update# 安装php8.0-fpmsudo apt -y install php8.0-fpm# 安装扩展sudo apt install -y php8.0-{bcmath,bz2,intl,gd,mbstring,mysql,zip,gd,curl,imagick,xml,redis}# 检查php配置是否有误sudo php-fpm8.0 -t# 重启phpsudo service php8.0-fpm restart#查看当前安装了哪些版本的PHPdpkg -l | grep php
nginx12345678sudo nginx=stable sudo add-apt-repository ppa:nginx/$nginxsudo apt updatesudo apt ...
使用stub配合laravel-excel实现后台运行的excel下载中心
创建模板stub
建一个stub模板,用于下面使用
在resources下新建stubs目录用于存储新建一个query-download.stub
1234567891011121314151617181920212223242526272829303132333435<?phpnamespace DummyNamespace;use App\Exports\QueryExport;class DummyClass extends QueryExport{ public function headings(): array { //表头 return [ // ]; } public function columns($row): array { //每一列的数据 return [ // ]; } public function stringColu ...
Restful HTTP API 设计规范
What’s RESTfulRESTful 是一种软件设计风格,由 Roy Fielding 在他的 论文 中提出,全称为 Representational State Transfer,直译为表现层状态转移
使用RESTful的优势
安全可靠,高效,易扩展。
简单明了,可读性强,没有歧义。
API 风格统一,调用规则,传入参数和返回数据有统一的标准
设计规范域名
域名应尽量使用https协议,可使用certbot制作免费https证书,后面研究一下
api应与主域名区分开,使用专用域名(.eg: https://api.alon.wang)或者放在主域名下(eg:https://alon.wang/api)
版本迭代随业务的发展,api大概率会发生迭代,为了保证新老用户的使用,应控制好版本.实现方法
版本号加入URL中
12https://alon.wang/api/v1https://alon.wang/api/v2
使用HTTP请求头的Accept来进行区分
123https:/ ...
laravel-permission权限管理的使用
安装安装composer包composer require spatie/laravel-permission
配置
生成迁移文件 php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
运行迁移命令 php artisan migrate
生成配置文件 php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
用户模型需使Spatie\Permission\Traits\HasRoles,如果使用了其他guard,还需设置guard_name属性
如果要扩展Role和Permission模型,需要继承扩展包的Spatie\Permission\Models\Role和Spatie\Permission\Mod ...
使用jwt在laravel中实现api的登录授权
emmmmm,发现一个问题;如果jwt过期时间设为2小时,则为绝对意义上的2小时,而不是用户无操作之后的2小时,这是为了保证token的安全,防止token被窃取后,一直使用,永远不过期。所以要用 JWTAuth::parseToken()->refresh() 刷新token,返回给前端;当然也可以设置无过期时间
jwt简单了解jwt全称json web token,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519)。特别适用于分布式站点的单点登录(SSO)场景。
jwt认证流程
客户端表单提交用户认证信息发送到服务端
服务端验证用户信息,生成jwt(包括header,payload,signature),jwt的组成后面再具体研究
服务端返回token给客户端
客户端存储token,并在后续每次请求服务端时在Http请求的header中的Authorization中上送token,(也可不放在header中,但建议在header中上送,保证安全)
服务端收到请求,验证jwt,然后处理业务逻辑返回结果
jwt认证与session认证的优 ...