我正在尝试创建 SPA。我将 Laravel API 用于后端,将 Nuxt.js 用于前端。我想通过 Laravel Sanctum 对用户进行身份验证。我在 localhost:8000 上运行后端,在 localhost:3000 上运行前端。SANCTUM_STATEFUL_DOMAINS 设置为 localhost:3000,SESSION_DOMAIN 设置为 localhost,SESSION_DRIVER 设置为 cookie。
我在我的应用程序中创建了登录和注销,一切都很好,直到我在登录后提出第一个请求。我只是希望我的应用程序返回所有用户:
Route::middleware('auth:sanctum')->get('/users', function() { return User::all(); });
但它返回 401 未经身份验证。我不知道为什么会这样。用于返回登录用户的路由使用相同的中间件:
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
并且完美运行(Nuxt 在每次页面更改时返回登录用户)。我用 axios 调用了用户路由:
axios.get('http://localhost:8000/api/users')
什么会导致这个问题?这非常令人沮丧,因为我为了让登录和注销工作而付出了很多努力。
我还考虑过在 api.domain.test 上运行 API,在 domain.test 上运行前端,但是是否可以在本地将这样的域连接到 Nuxt?