laravel - Laraven 的圣所会取代默认认证吗?
问题描述
我一直在浏览许多与使用多重身份验证、圣所和 SPA 相关的问题。我也多次阅读文档。我对这是如何工作的感到困惑。
目前我有 2 个路线组:web
和api
. Web 组输出不同的 HTML 模板和前端内容等,API 路由生成用于填充这些模板的内容。
我也有 2 种不同类型的用户,admins
并且clients
. 每个人都可以访问 和 的某些web
路线api
。
我使用 2 个警卫来保护web
路线,效果很好:
'guards' => [
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'client' => [
'driver' => 'session',
'provider' => 'clients',
],
],
和提供者:
'providers' => [
'admins' => [
'driver' => 'eloquent',
'model' => App\Models\Admin::class,
],
'clients' => [
'driver' => 'eloquent',
'model' => App\Models\Client::class,
],
],
现在我无法保护 API 路由。我已按照说明进行操作,设置X-XSRF-TOKEN
标头,将 sanctum 添加到中间件,但我总是收到 401 响应。我不知道如何设置我的警卫。我应该在阵列中再添加 2 个守卫吗?如:
'guards' => [
// Web
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'client' => [
'driver' => 'session',
'provider' => 'clients',
],
// API
'sanctum_admin' => [
'driver' => 'sanctum',
'provider' => 'admins',
],
'sanctum_client' => [
'driver' => 'sanctum',
'provider' => 'clients',
],
],
然后使用将auth:sanctum_admin
中间件添加到我的 API 路由中?因为这也行不通。我应该移除原来的守卫,只使用圣所吗?这甚至可以为 Web 和 API 设置多个保护吗?真的很困惑这是如何工作的。任何帮助表示赞赏。
解决方案
推荐阅读
- ios - 在 iOS 中禁用特定 UITextField 的 3rd 方键盘
- kubernetes - 从当前上下文中取消设置命名空间
- python - 如何从单个数据框列中减去数组?
- firebase - Ionic 3 背景位置不起作用。当APP进入后台时,后台位置不会在firebase上更新
- php - 如何在 PHP 中使用带有 GET 变量的 URL 构建 mailto HTML 元素
- c++ - 无法从 Win32 C++ GDI+ 中的函数返回图形对象
- json - 使用 Spring Boot Rest 转换为 JSON 时,Java LocalDateTime 被转换为整数数组
- visual-studio - 如何删除另一个调试器以便 Visual Studio 可以调试脚本
- reactjs - 按钮单击不会在内容 UI 中显示条件卡
- java - 在android上的谷歌地图上更改markerSnippet