Laravel、Vuejs、axios为登录用户获取帖子

Laravel、Vuejs、axios为登录用户获取帖子,laravel,vue.js,authentication,post,axios,Laravel,Vue.js,Authentication,Post,Axios,我正试图通过axios将登录用户的任务导入vuejs组件,但我一直在尝试 邮政401(未经授权) 以下是来自api.php的路由: Route::group(['middleware' => 'auth:api'], function() { Route::prefix('tasks')->group(function() { Route::post('/', 'TasksController@index'); Route::post('{i

我正试图通过axios将登录用户的任务导入vuejs组件,但我一直在尝试

邮政401(未经授权)

以下是来自api.php的路由:

Route::group(['middleware' => 'auth:api'], function() {

    Route::prefix('tasks')->group(function() {
        Route::post('/', 'TasksController@index');
        Route::post('{id}', 'TasksController@single');
        Route::post('new', 'TasksController@new');
    });

});
任务控制器的
索引
功能:

public function index(Request $request) {

    if ( $request->ajax() ) {
        return auth()->user()->tasks()->orderBy('name', 'ASC')->get();
    }

    return view('tasks.index')
                ->with('tasks', auth()->user()->tasks()->orderBy('name', 'ASC')->get());

}
以及vuejs组件:

<template>
    <div>
        <ul>
            <li v-for="task in tasks" v-bind:key="task.id">{{ task.name }}</li>
        </ul>
    </div>
</template>

<script>
    export default {
        data() {
            return {
                tasks: [],
            }
        },

        created() {
            this.fetchTasks();
        },

        methods: {

            fetchTasks() {
                axios({
                    url: 'api/tasks',
                    method: 'POST',
                    headers: {
                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                    }
                }).then(res => {
                    this.tasks = res.data;
                });
            }

        }
    }
</script>

  • {{{task.name}
导出默认值{ 数据(){ 返回{ 任务:[], } }, 创建(){ this.fetchTasks(); }, 方法:{ fetchTasks(){ axios({ url:“api/任务”, 方法:“POST”, 标题:{ 'X-CSRF-TOKEN':$('meta[name=“CSRF-TOKEN”]).attr('content')) } })。然后(res=>{ this.tasks=res.data; }); } } }
您使用的是
auth:api
中间件,默认情况下这是基于令牌的身份验证,但我看不到您添加任何
承载
令牌头

我知道有两种可能的解决方案

  • 如果您想继续使用
    auth:api
    中间件,请请求一个api令牌并在您的请求()中使用它,但最好切换到
  • 就我个人而言,我会使用WebAuth进行此操作(基于会话),在您登录后,将添加会话令牌,您实际上不需要对其做太多操作,因为它将添加到之后的所有调用中

  • 401错误发生在您未经身份验证/登录时。我知道,问题是我已登录。