如何使用axios将GET请求发送到jwt-auth?

时间:2019-12-03 12:59:03

标签: laravel-5 axios jwt-auth

在vue / cli 4 / vuejs 2.6.10 / vuex,3.0.1应用中,我发出了axios请求

axios.get(apiUrl + '/personal/user_groups/'+user_id )  /
   .then((response) => {

使用jwt.auth组中的路由到后端应用(Laravel 5 / jwt-auth):

Route::group(['middleware' => 'jwt.auth',  'prefix' => 'personal', 'as' => 'personal.'], function ($router) {
    Route::post('user_groups', 'API\PersonalController@user_groups');

出现错误:

"error":"UNAUTHORIZED_REQUEST"

我找到了一种发送带有config参数和token参数的POST请求的方法,该方法在成功登录后得到:

let config = {
    withCredentials:true, 
    headers: {
        'Content-Type': 'application/json',
        'Access-Control-Allow-Origin': '*',
    }
}
axios({ url: apiUrl + '/personal/user_groups', data: {user_id:user_id, token: this.getters.token}, method: 'POST', config : config })
    .then(response => {

但是,如果有一种发送GET请求的方法,而我在主题开始处做了?

1 个答案:

答案 0 :(得分:0)

我发现了将Authorization参数添加到请求标头中的解决方案

settingCredentialsConfig.headers.Authorization = "Bearer " + this.getters.token;
axios.get(apiUrl + '/personal/user_groups/' + user_id, settingCredentialsConfig)
    .then((response) => {

其中settingCredentialsConfig在settings.js中定义为

export const settingCredentialsConfig = {
    withCredentials:true, 
    headers: {
        'Content-Type': 'application/json',
        'Access-Control-Allow-Origin': '*',
    }
}