【发布时间】:2022-01-01 20:10:33
【问题描述】:
我有我的路由/web.php,如下所示:
Route::prefix('espace')->middleware(['auth'])->group(function () {
Route::get('conversation/{id}', [MessageController::class, 'get_message'])->name('conversation.message');
Route::post('searchUser', [UserController::class, 'search'])->name('user.search');
Route::post('sendMessage', [MessageController::class, 'send_message'])->name('message.send');
Route::post('getConversation', [MessageController::class, 'all_conversation'])->name('conversation.all');
});
我尝试使用 axios 在 vue js 上使用它们;
在我的刀片中,我有这个:
<meta name="csrf-token" content="{{ csrf_token() }}">
在我的 bootsrapt.js 中: let token = document.head.querySelector('meta[name="csrf-token"]');
window.axios = require('axios');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
我的 kernel.php:
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
我已经收到了我的 csrf 令牌
用户已登录,但根据请求我收到错误 401“未验证”
【问题讨论】:
标签: laravel routes middleware