Sanctum 是 Laravel 官方推荐的轻量级 API 认证方案,专为 SPA 设计,基于 token + CSRF 实现无状态认证;需安装配置、执行迁移、设置 API guard;登录分三步:获取 CSRF cookie、提交凭证并生成 token、前端携带 Bearer Token 请求;路由用 auth:sanctum 中间件保护;登出须后端销毁 token 并前端清理。

Sanctum 是 Laravel 官方推荐的轻量级 API 认证方案,特别适合 SPA(单页应用)场景——它不依赖 session cookie 的传统 Web 认证,而是通过 token + CSRF 保护实现安全、无状态的前后端分离登录。
在 Laravel 项目中执行:
然后在 app/Providers/AuthServiceProvider.php 的 boot() 方法中添加:Sanctum::usePersonalAccessTokenModel(PersonalAccessToken::class);(可选,若自定义 Token 模型)
并在 config/auth.php 中确保 'api' guard 使用 'sanctum' driver。
前端(如 Vue/React)向后端发起登录请求时,需配合 Laravel 的 CSRF 机制:
XSRF-TOKEN cookie(前端自动携带)Auth::attempt(),再用 auth()->user()->createToken('spa')->plainTextToken 生成 tokenAuthorization: Bearer {token} 头中携带在 routes/api.php 中使用 middleware('auth:sanctum'):
Route::get('/user', function (Request $request) { return $request->user(); })->middleware('auth:sanctum');auth:sanctum 中间件会自动识别 Bearer Token 或已认证的 Web session(兼容 SSR 场景)web 中间件登出不是清空前端 token 就完事,必须通知后端销毁对应 token:
/logout(需带 token)auth()->user()->currentAccessToken()->delete();
auth()->user()->tokens()->delete();
基本上就这些。Sanctum 对 SPA 友好,不强制刷新 token、不依赖 Redis、开箱即用,只要注意 CSRF 初始化和 token 生命周期管理,就能稳住前后端身份链路。
以上就是Laravel如何使用Sanctum进行API认证?(SPA实战)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号