he instalado:
v 7.30.4v 2.15.7Después de iniciar sesión en mi laravel sanctum con el módulo de autenticación nuxtjs, cuando nuxt intenta obtener el usuario, laravel responde error 401 (mensaje no autenticado).
api.php :
Route::group(['middleware'=>'auth:sanctum'], function (){ Route::get('/user', function (Request $request){ return $request->user(); }); }); nuxt.config.js :
auth:{ strategies: { 'laravelSanctum': { provider: 'laravel/sanctum', url: 'http://localhost:8000', endpoints:{ login:{ url:'/login' }, logout:{ url:'/api/logout' }, }, user:{ property:false } }, }, redirect:{ login: '/auth/login', logout:'/', home:'/' }, cookie: { options: { sameSite: 'lax' }, }, }, LoginController.php :
public function login(Login $request) { $user=User::where('phone_number', $request->phone_number)->first(); if (Hash::check($request->password, $user->password)){ $request->session()->regenerate(); return response()->json(null, 201); } return $this->setStatusCode(422)->respondWithError('password','invalid pasword'); } .env :
SESSION_DRIVER=file SESSION_LIFETIME=120 SESSION_DOMAIN=localhost SANCTUM_STATEFUL_DOMAINS=localhost:3000¡No sé dónde está el problema que me da el error 401!
Tuve el mismo problema, la solución fue agregar localhost:8000 (dominio laravel) a SANCTUM_STATEFUL_DOMAINS
SESSION_DOMAIN=localhost SANCTUM_STATEFUL_DOMAINS=localhost:8000,localhost:3000debe devolver su api token después de iniciar sesión y enviarlo en cada solicitud que use middleware('auth:sanctum') en la ruta laravel.
más información sobre la emisión de tokens en sanctum
obtener el usuario requiere un token y, si no se proporciona, arroja un error 401 .
en su .env puede agregar este SESSION_SECURE_COOKIE=false