Интерфейс REST для пользовательского типа сущности, получающий константу 403
Я создал свой модуль и определение сущности с помощью консоли drupal. Он вообще не был изменен. Моя сущность предназначена для пользователя, но по разным причинам я не буду использовать уже существующую пользовательскую сущность.
Я установил restui, сериализацию, hal, базовую аутентификацию. Все работает нормально.
Я создал экземпляр REST для своей сущности с помощью пользовательского интерфейса; ОПУБЛИКУЙТЕ и ПОЛУЧИТЕ, используя json+hal и базовую аутентификацию.
Использование локона (и почтальона) Я могу создать и извлечь узел; Я могу также извлеките пользовательскую сущность пользователя, которую я создал с помощью пользовательского интерфейса. Все вышеперечисленное было легко, никаких драм, совсем не заняло времени.
Затем дело дошло до создания пользовательской сущности пользователя. Никаких костей. Я получаю постоянные 403-е и ничего в сообщении (и ничего не зарегистрировано в сторожевом псе, что удобно.)
Аутентификация использует учетную запись администратора (на самом деле 2, я создал новую в отчаянии); пользователи-администраторы по умолчанию имеют все разрешения, но я добавил дополнительные разрешения для роли, прошедшей проверку подлинности также на тот случай, если он использовал это внутренне. (Еще больше отчаяния.)
Я также очищаю кэш каждые 5 минут.
Я отправлял запросы с использованием заголовка X-CSRF-токена, используя сочетание свежих и старых токенов (т.Е. запрашивая новые перед полным запросом, а затем пробуя также старые). Кто-нибудь знает, как часто мы должны получать новые токены?
Я также пробовал без жетонов.
Проблема в том, что я понятия не имею, где это происходит, поэтому все, что я могу сделать размахиваю руками в тщетной попытке поразить что-то полезное (я уверен, что это было действие "Подземелья и драконы"?)
Тело моего запроса на публикацию также было изменено, но я не уверен, что оно выдаст 403, если оно неверно, я бы предположил, что "неправильный" ответ вернется или, по крайней мере, не 403. Кто-нибудь может подтвердить?
Поскольку моя сущность была создана консолью, и я могу видеть все разрешения CRUD, включенные для моих ролей администратора, куда я могу пойти отсюда?
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.