Политика не может получить доступ к пользователю в маршруте удаления / исправления - PullRequest
0 голосов
/ 13 марта 2019

Когда я вызываю мой Api Route с помощью GET Http-Verb, он возвращает мне моего пользователя. Если я вызываю его с помощью DELETE или PATCH Route, он возвращает ноль.

Я добавляю Политику к полному Контроллеру:

namespace App\Http\Controllers\API;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

use App\Shoppingcart;
use Validator;
use Response;

class ShoppingcartController extends Controller
    {
        public function __construct()
        {
            $this->authorizeResource(Shoppingcart::class, 'shoppingcart');
        }


    ...

    public function destroy()
    {
        ...
    }
}

Тогда я «умру и брось» пользователя в Политике:

namespace App\Policies;

use App\User;
use App\Shoppingcart;
use Illuminate\Auth\Access\HandlesAuthorization;

class ShoppingcartPolicy
{
    use HandlesAuthorization;

    public function before(?User $user, $ability)
    {
        dd($user);
    }

    public function update(User $user, Shoppingcart $shoppingcart)
    {
    }

    public function delete(User $user, Shoppingcart $shoppingcart)
    {
    }
}

Я аутентифицирую свой Запрос в Заголовке и зарегистрировал Политику в AuthServiceProvider.php

1 Ответ

0 голосов
/ 21 марта 2019

Аутентификация для Web и API отличается. Файлы cookie, установленные во внешнем интерфейсе, не учитываются в API.

Мне нужно было зарегистрировать Auth Middleware также для API-маршрутов:

Route::middleware('auth:api')->group(function(){
    Route::apiResource('/shoppingcarts', 'API\ShoppingcartController');
});
...