Интерфейс REST для пользовательского типа сущности, получающий константу 403


Я создал свой модуль и определение сущности с помощью консоли drupal. Он вообще не был изменен. Моя сущность предназначена для пользователя, но по разным причинам я не буду использовать уже существующую пользовательскую сущность.

Я установил restui, сериализацию, hal, базовую аутентификацию. Все работает нормально.

Я создал экземпляр REST для своей сущности с помощью пользовательского интерфейса; ОПУБЛИКУЙТЕ и ПОЛУЧИТЕ, используя json+hal и базовую аутентификацию.

Использование локона (и почтальона) Я могу создать и извлечь узел; Я могу также извлеките пользовательскую сущность пользователя, которую я создал с помощью пользовательского интерфейса. Все вышеперечисленное было легко, никаких драм, совсем не заняло времени.

Затем дело дошло до создания пользовательской сущности пользователя. Никаких костей. Я получаю постоянные 403-е и ничего в сообщении (и ничего не зарегистрировано в сторожевом псе, что удобно.)

Аутентификация использует учетную запись администратора (на самом деле 2, я создал новую в отчаянии); пользователи-администраторы по умолчанию имеют все разрешения, но я добавил дополнительные разрешения для роли, прошедшей проверку подлинности также на тот случай, если он использовал это внутренне. (Еще больше отчаяния.)

Я также очищаю кэш каждые 5 минут.

Я отправлял запросы с использованием заголовка X-CSRF-токена, используя сочетание свежих и старых токенов (т.Е. запрашивая новые перед полным запросом, а затем пробуя также старые). Кто-нибудь знает, как часто мы должны получать новые токены?

Я также пробовал без жетонов.

Проблема в том, что я понятия не имею, где это происходит, поэтому все, что я могу сделать размахиваю руками в тщетной попытке поразить что-то полезное (я уверен, что это было действие "Подземелья и драконы"?)

Тело моего запроса на публикацию также было изменено, но я не уверен, что оно выдаст 403, если оно неверно, я бы предположил, что "неправильный" ответ вернется или, по крайней мере, не 403. Кто-нибудь может подтвердить?

Поскольку моя сущность была создана консолью, и я могу видеть все разрешения CRUD, включенные для моих ролей администратора, куда я могу пойти отсюда?

Author: kiamlaluno, 2016-05-11

1 answers

Ответ довольно прост, но его легко пропустить.

URL-адрес, который я использовал при отправке запроса GET; http://apps.dev/app/apps_user/1?_format=hal_json не совпадает с URL-адресом, необходимым для отправки запросов POST.

Чтобы сделать запрос на публикацию, вы меняете его на http://apps.dev/entity/apps_user?_format=hal_json

Ни один из URL-адресов в возвращаемом свойстве _links не является правильным для запросов POST.

 1
Author: Christian, 2016-05-12 06:04:36