laravel-sanctum - laravel jetstream request api route middleware protected api:sanctum return unauthenticated response
问题描述
我在 session.php 文件中遇到了 'domain' => env ('SESSION_DOMAIN', null) 的问题。例如,在 .env 文件中设置 SESSION_DOMAIN 值时
SESSION_DOMAIN=mysite.test
登录不起作用,似乎有一个中间件。如果不设置此参数,登录工作正常,因此当我使用 sanctum 中间件 ex 调用 api 保护路由时。
Route::middleware(['auth:sanctum'])->group(function () {
Route::get('/myroute', function () {
return 'hello world!';
});
});
我有未经身份验证的回复。如果使用 web.php 文件路由并插入相同的函数:
Route::middleware(['auth:sanctum'])->group(function () {
Route::get('/api/myroute', function () {
return 'hello world!';
});
});
使用 api 前缀,它的工作正常。我关注了 laravel 8.x sanctum 文档https://laravel.com/docs/8.x/sanctum。在没有喷气流的 laravel 项目 7.* 中,我没有问题。对于这种现象有任何建议或解释。任何解释都会对我有所帮助!非常感谢。
解决方案
我遇到了一个类似的问题,我无法验证来自前端的任何 API 请求。原来生成的 Kernel.php 默认不包含会话 cookie 的 Sanctum 中间件 -你必须在你的app/Http/Kernel.php
:
'api' => [
EnsureFrontendRequestsAreStateful::class, // <- Add and import this middleware
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
完成此 API 请求后,我的前端再次工作。也许这也可以解决您的问题。
推荐阅读
- python - 我无法在我的主蜘蛛文件中导入 items.py 文件[scrapy]
- react-native-navigation - 有什么办法可以关闭覆盖
- javascript - 来自 LocalDatastore 中的 Parse 中具有本地 ID 的对象不会更新
- php - 如何通过 Laravel 中的 hasMany 关系过滤条目
- vb.net - 如何在 vb.net 的 word 文档中指定插入点?
- r - 替换列中的值
- c++ - 使用 VB 示例与 SerialCOM 进行 C++ 字符串 ASCII 通信
- kubernetes - GKE 节点意外删除并重新创建
- ruby-on-rails - 带有 RSpec 测试的 Capybara 上的 ActionController::InvalidAuthenticityToken
- c# - 如何使用 C# 从 SQL Server 表中获取一些 MAX 和 MIN 值