Я создал приложение только для API с использованием ресурса API и паспорта для аутентификации.Приложение выполняет следующие действия:
- Разрешить всем перечислять все книги и просматривать определенную книгу
- Разрешать только зарегистрированным пользователям добавлять, обновлять и удалять принадлежащие им книги
Используя почтальон, приложение работает как задумано, за исключением операций обновления и удаления.Если пользователь пытается обновить не принадлежащую ему книгу, я хочу получить ответ об ошибке.К сожалению, я получаю код состояния 200 Ok вместо своего специального сообщения и код состояния 403.То же самое и с удалением.
Это мои методы обновления и удаления BookController
public function update(Request $request, Book $book)
{
// Update book if the logged in user_id is the same as the book user_id
if ($request->user()->id === $book->user_id) {
$book->update($request->only(['title', 'author']));
return new BookResource($book);
} else {
response()->json(['error' => 'You do not have the permission for this operation'], 403);
}
}
public function destroy(Request $request, Book $book)
{
// Delete book only if user_id matches book's user_id
if ($request->user()->id === $book->user_id) {
$book->delete();
return response()->json(null, 204);
} else {
response()->json(['error' => 'You do not have the permission for this operation'], 403);
}
}
ПРИМЕЧАНИЕ: при тестировании в почтальоне я просто добавляю токен на предъявителя в поле авторизации заголовков,Работает, когда пользователь владеет книгой, но получает 200 вместо кода состояния 403. Когда книга не принадлежит зарегистрированному пользователю.
Что я делаю неправильно и как я могу это исправить?