You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel认证选型:Passport与Sanctum,搭配Spatie权限可行吗?

Laravel + Vue.js 众筹网站的认证与权限方案建议

一、认证系统选择

根据你的项目架构(Laravel + Vue.js),分两种场景选择适配方案:

  • 前后端分离(Vue独立部署):优先用Laravel Sanctum。它是Laravel官方推出的轻量认证工具,专门适配SPA、移动应用这类无状态场景,支持cookie-based SPA认证(无需手动管理token存储)和API token认证,配置步骤简单,对新手友好,完全满足众筹网站的用户登录、注册、身份校验需求。
  • 服务端渲染嵌入Vue组件:选Laravel Breeze或者Jetstream。Breeze是极简版认证脚手架,一键生成登录、注册、密码重置等基础页面;Jetstream在Breeze基础上增加了双因素认证、团队管理等进阶功能,适合需要快速搭建完整认证流程的场景。

二、Sanctum + Spatie 权限方案的可行性

完全可行,两者职责清晰,搭配起来非常适配众筹网站的多角色需求:

  • Sanctum负责身份认证:确认当前请求的用户是合法注册用户,处理登录、token发放/校验等核心流程。
  • Spatie的laravel-permission包负责权限控制:可以给用户分配角色(比如普通捐赠者、项目发起人、平台管理员),再给角色绑定对应权限(比如发起项目、审核项目、发起捐赠),实现精细化的访问控制。

简单落地步骤

  1. 先安装配置Sanctum:
    • 执行composer require laravel/sanctum
    • 发布迁移文件并执行迁移,在config/sanctum.php中配置SPA域名(设置stateful数组)
    • 在Vue项目中配置axios,让请求自动携带cookie,完成登录认证流程
  2. 再安装Spatie权限包:
    • 执行composer require spatie/laravel-permission
    • 发布迁移文件并执行迁移,通过命令创建角色和权限(比如php artisan permission:create-role donor、php artisan permission:create-permission donate)
  3. 权限校验:
    • 后端:在控制器中用$user->can('donate')或者路由中间件can:donate校验权限
    • 前端:通过API获取用户的角色/权限,控制页面按钮、路由的可见性(比如仅项目发起人能看到“发起项目”按钮)

新手注意事项

先从角色控制入手,比如先区分普通用户和管理员,再逐步细化到具体权限,避免一开始搭建过于复杂的权限体系,降低学习成本。

内容的提问来源于stack exchange,提问作者aliana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:20:33