Laravel 护照未经身份验证的消息

时间:2021-06-19 10:44:29

标签: php laravel vue.js

我已经用这个撞墙了一段时间了,只是我不知道问题出在哪里。所以我有后端 Laravel 和前端 Vue;登录没问题,我得到令牌,但是当我使用 auth:api 进入其中一条路线时,我得到 "message":"Unauthenticated."。我将令牌保存在前面,所以我应该将它与任何请求一起发送到后端还是有其他方法?

登录控制器.php

    public function login(Request $request)
    {
        $login = $request->validate([
            'email' => 'required',
            'password' => 'required',
        ]);

        if(Auth::attempt($login))
        {
            return response(['message' => 'Invalid login']);
        }

        $user = User::where('email', $request->email)->first();
        $accessToken = $user->createToken('Laravel Password Grant Client')->accessToken;
        return response()->json(['user' => $user, 'access_token' => $accessToken]);
    }

api.php

Route::namespace('\\')->middleware('auth:api')->group(function(){
    Route::resource('budget', BudgetController::class);
});

user.js


const state = {
    token: localStorage.getItem('access_token') || null,
    isAuthenticated: localStorage.getItem('access_token') !== null
}

const getters = {
    isAuthenticated: state => state.isAuthenticated
}

const actions = {
    async retrieveToken({commit}, payload){
       console.log(payload)
        const response = axios.post(url + '/login', payload)
            .then(response => {
                const token = response.data.access_token

                localStorage.setItem('access_token', token)

                commit('setToken', token)
            })
    }
}

const mutations = {
    setToken: (token) => state.token = token
}

1 个答案:

答案 0 :(得分:0)

好的,所以在我的第二个模块中,我使用令牌作为标题,如下所示:


const state = {
  budget: [],
  header: {
    headers: {
      Authorization: `Bearer ${localStorage.getItem("access_token") || null}`,
      withCredentials: true,
      "Access-Control-Allow-Origin": "*"
    },
  }
};


const getters = {
  allBudget: (state) => state.budget,
};

const actions = {
  async fetchBudget({ commit, state }) {
    const response = await axios.get(url, state.header);

    console.log(state.header);
    commit("setBudget", response.data);
  },
};

之后我收到 CORS 错误,所以我需要在文件 xampp\apache\conf\httpd.conf 的末尾添加两个指令

Header Set Access-Control-Allow-Origin * 

Header Set Access-Control-Allow-Headers * 
相关问题