Token验证应在请求进入业务逻辑前通过中间件完成,如Laravel的EnsureTokenIsValid类从Authorization头提取Bearer Token并校验,失败则返回401,成功后放行请求。

在中间件中验证 Token,PHP 本身不需要“加标签”来实现,关键在于正确使用框架提供的中间件机制和请求处理流程。所谓“加 PHP 标签”,通常是指在代码中插入 <?php ?>,但这和 Token 验证无关——Token 验证是逻辑层行为,不是模板或语法标记问题。
明确中间件的执行位置
Token 验证应在请求进入业务逻辑前完成,比如在 Laravel、ThinkPHP 或自定义 Swoole/PSR-15 中间件里拦截请求头(如 Authorization: Bearer xxx),解析并校验 JWT 或自定义 Token。
- 确保中间件注册在路由或全局中间件组中,早于控制器执行
- 不要把验证逻辑写在视图(.php 文件)里,那已属响应阶段,不安全
- 避免在 HTML 模板中用
<?php ... ?>手动验 Token,这无法阻止非法请求到达后端
典型 Token 验证中间件写法(以 Laravel 为例)
创建中间件类(如 EnsureTokenIsValid),在 handle() 方法中操作:
基于官方 GMGN API 的代币分析工具。通过合约地址查询代币在 SOL/BSC/Base 链上的准确市场数据、安全检测、KOL 分析、开发者分析和 AI 智能分析(叙事/筹码/老鼠仓/机器人)。支持自动识别链。
- 从
$request->header('Authorization')提取 Bearer Token - 用
JWTAuth::parseToken()->authenticate()或自定义解码逻辑验证签名、过期时间、用户状态 - 验证失败时直接
return response(...)->setStatusCode(401)终止请求 - 验证成功可将用户信息绑定到
$request或Auth::setUser(...)
注意 Token 传递与安全性细节
前端必须通过标准方式传 Token,后端才能可靠获取:
立即学习“PHP免费学习笔记(深入)”;
- 推荐使用
Authorization: Bearer <token>请求头,而非 URL 参数或 Cookie(易泄露) - 确保 Web 服务器(Nginx/Apache)未过滤掉
Authorization头(需配置rewrite ^(.*)$ /index.php/$1 last;或fastcgi_pass_request_headers on;) - 开发环境若用 PHP 内置服务器,需手动解析
$_SERVER['HTTP_AUTHORIZATION'](因它不自动填充getallheaders())
不依赖框架时的手动中间件结构
若用原生 PHP 或 PSR-15 兼容服务,可这样组织:
- 定义一个
__invoke(ServerRequestInterface $req, RequestHandlerInterface $next)方法 - 提取 Token 后调用独立验证服务(如
TokenValidator::verify($token)) - 验证失败抛出
UnauthorizedException并由异常处理器统一响应 - 验证成功再调用
$next->handle($req)放行


















