Я получаю 'unauthorized'
ошибку при попытке опубликовать новый комментарий с axios
..... я добавил (console.log(this.user.api_token);
) как раз перед axios.post
в postComment()
метод. вывод: "undefined"
!!!!!!!!!!
Я учусь, и я не знаю много о API. но я не думаю, что пользователь api_token
должен быть установлен вручную. или делает это ???
скрипт:
<script>
const app = new Vue({
el: '#app',
data: {
comments: {},
commentBox: '',
post: {!! $post->toJson() !!},
user: {!! Auth::check() ? Auth::user()->toJson() : 'null' !!}
},
mounted() {
this.getComments();
},
methods: {
getComments() {
axios.get('/api/post/'+this.post.id)
.then((response) => {
this.comments = response.data
})
.catch(function (error) {
console.log(error);
});
},
postComment() {
console.log(this.user.api_token);
axios.post('/api/post/'+this.post.id , {
api_token: this.user.api_token,
body: this.commentBox
})
.then((response) => {
this.comments.unshift(response.data);
this.commentBox = '';
})
.catch((error) => {
console.log(error);
})
}
}
})
API-маршрут
Route::get('/post/{post}', 'CommentController@index');
Route::middleware('auth:api')->group(function () {
Route::post('/post/{post}', 'CommentController@store');
});
CommentController
public function index(Post $post){
return response()->json($post->comments()->with('user')->get());
}
public function store(Request $req,Post $post){
$comment=$post->comment()->create([
'user_id'=>auth::id(),
'body'=>$req->body
]);
$comment=Comment::where('id',$comment->id)->with('user')->first();
return $comment->toJson;
}