在使用nuxtjs登录到laravel避难所后出现401(未经验证)错误
我已安装:
- LAVELL
v 7.30.4
- nuxtjs
v 2.15.7
在我使用nuxtjs身份验证模块登录到laravel禁区后,当nuxt尝试获取用户时,laravel响应401错误(未验证的消息)。
我的网络状态:
我的Cookie状态:
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
我不知道我收到401错误的问题出在哪里!
解决方案
我也遇到了同样的问题,解决方案是将localhost:8000(幼域)添加到SASTUM_STATEWY_DOMAINS
SESSION_DOMAIN=localhost
SANCTUM_STATEFUL_DOMAINS=localhost:8000,localhost:3000
相关文章