预先感谢您的回答。
由于通过vpmjs通过npm run dev和bakcend在服务器apache2(适用于框架的Laravel)上,我拥有一台服务器。
我到达发送数据以对用户进行身份验证,但是当我从后端发送到前端时,我的响应没有收到标头Authorization,但是当我从浏览器中看到Network时,它却是。在请求POST之前,发送了一个请求OPTIONS。
我将中间件cors与:
return $next($request)->header('Access-Control-Allow-Origin', $origin)
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers','Authorization')
->header('Access-Control-Allow-Credentials','true');
但是我没有收到授权承载。
我的控制器:
$credentials = $request->only('username','password');
if ($token = $this->guard()->attempt($credentials)) {
$currentUser = Auth::user();
//$establishments = EstablishmentUser::where('user_id',$currentUser->id)->get();
//$request->session()->put('establishment_id', $establishments[0]->establishment_id);
//TODO WHEN A USER LOGS IN, CHOOSE WHICH ESTABLISHMENT HE WANTS TO WORK WITH
//IN FRONT-END, SWITCH EHPAD, RESIDENCE... AND CHANGE SESSION DATA
//$establishments = EstablishmentUser::where('user_id',$currentUser->id)->get();
// if(count($establishments)==1){
//$request->session()->put('establishment_id', $establishments[0]->establishment_id);
// } else if (count($establishments)>=1){
// //NEED TO CHOOSE ESTABLISHMENT
// }
return response()->json(['msg' => 'success'], 200)->header('Authorization', $token);
}
return response()->json(['error' => 'Credential error'], 401);
我添加的main.js
axios.defaults.headers.common['Content-Type'] = 'application/json';
axios.defaults.headers.common['Access-Control-Allow-Origin'] = '*';
axios.defaults.headers.common['Access-Control-Allow-Credentials'] = true;
我该如何解决我的问题?有想法吗?
谢谢!