用 Laravel 11.x 做纯API端

Laravel 11 简化了很多内容,把一些很少需要改动的内容默认隐藏起来,使整个project文件数量减少了很多,如果做纯API的话,再把前端相关的内容删除后就更简洁了。

初始化

先安装laravel installer (Installation - Laravel 11.x - The PHP Framework For Web Artisans)

创建一个project

不使用初始包,测试用Pest简化代码,初始化 git,数据库用 sqlite 方便本地开发

创建 token 模式的验证方式

安装Sanctum来管理 token (Laravel Sanctum - Laravel 11.x - The PHP Framework For Web Artisans)

运行 migrate 后User表就会加上 token字段,然后在 User model里加上HasApiTokens

创建一个 AuthController 来负责管理token

创建login, logout的方法

在 api.php 里加上路由

创建UserController 返回用户信息

创建测试

用Pest来测试,创建AuthTest.php

引入 DatabaseTransactions 就是为了保持数据库干净,测试后会自动Rollback。 token 获得后要使用 header Authorization 来进行认证。在测试过程中可以用Log::debug来打印日志,方便调试。

源码:项目概览 - hello-service - GitCode

相关推荐
桌面运维家1 小时前
交换机环路排查:STP配置实战与网络故障精确定位
开发语言·php
广州灵眸科技有限公司1 小时前
瑞芯微(EASY EAI)RV1126B 人脸98关键点算法识别
开发语言·科技·嵌入式硬件·物联网·算法·php
Figo_Cheung1 小时前
赛博疯态(Cyber-Madness)研究报告——基于人机交互中的情感共鸣、递归指涉与拟人化投射现象分析
开发语言·php·人机交互
亚马逊云开发者1 小时前
用 Serverless 搭 IoT 设备异常检测:Lambda + Step Functions + DynamoDB 分钟级告警实战
物联网·serverless·php
TO_WebNow2 小时前
tp5部署宝塔遇到的问题
android·ide·php·android studio
Xudde.2 小时前
班级作业笔记报告0x07
笔记·学习·安全·web安全·php
gfdhy4 小时前
【Linux服务器】基础服务实战部署|Nginx+MySQL+PHP+WordPress,让服务器真正可用
linux·服务器·mysql·nginx·php·毕设
Joy T4 小时前
【Web3】NFT 元数据去中心化存储与智能合约集成实战
开发语言·web3·去中心化·区块链·php·智能合约·hardhat
weixin_4080996715 小时前
图片去水印 API 接口实战:网站如何实现自动去水印(Python / PHP / C#)
图像处理·人工智能·python·c#·php·api·图片去水印
:mnong18 小时前
Superpowers 项目设计分析
java·c语言·c++·python·c#·php·skills