没有标题授权vuejs laravel

时间:2020-11-09 15:31:45

标签: laravel vue.js bearer-token vue-auth

预先感谢您的回答。

由于通过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;

我该如何解决我的问题?有想法吗?

谢谢!

0 个答案:

没有答案