I have installed:
v 7.30.4v 2.15.7After i login in my laravel sanctum with nuxtjs auth module, when nuxt try to get user, laravel response 401 error(Unauthenticated message).
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
I don't know where is problem that i get 401 error!
I had the same issue, the solution was to add localhost:8000 (laravel domain) to SANCTUM_STATEFUL_DOMAINS
SESSION_DOMAIN=localhost
SANCTUM_STATEFUL_DOMAINS=localhost:8000,localhost:3000
you need to return your api token after logging in. and send it in every request that you use middleware('auth:sanctum') in laravel route.
more info about issuing tokens in sanctum
getting user requires token and if not provided it with throw 401 error.
on your .env you can add this
SESSION_SECURE_COOKIE=false