Есть ли способ сделать опубликованный фильтр безопасным? - PullRequest
0 голосов
/ 08 мая 2018

Я работаю с развертыванием Apostrophe-Headless и Next.js. Все работает как мечта, но в настоящее время я пытаюсь настроить промежуточную среду и хотел бы показать неопубликованные элементы на этом этапе. Я видел документацию для published=any, и она работает, когда я вошел в систему, но когда мое приложение вызывает API на стороне сервера, неопубликованные элементы не возвращаются. Я предполагаю, что это потому, что сервер не вошел в систему. Я довольно долго копался и заметил упоминание массива safeFilter, но, похоже, он не влияет на published. Я бы не хотел фильтровать другую «опубликованную» переменную, когда она уже существует.

1 Ответ

0 голосов
/ 15 мая 2018

для просмотра неопубликованного контента вам необходимо иметь права на редактирование этого контента. Это определение «неопубликованные» в Апостроф.

Я думаю, что на самом деле это имеет смысл, потому что, если кому-то не разрешено редактировать, ему, вероятно, не следует позволять видеть то, что еще не доступно для общественности.

Если бы вы извлекли эту информацию, используя ключ безголового API для рассматриваемого типа контента, вы бы это увидели, но у вас также были бы права на редактирование.

Маркировка безопасного фильтра не имеет значения, потому что модель безопасности Apostrophe по-прежнему применяется всегда - окончательный запрос MongoDB будет включать в себя запрос пользователя на фильтр, но он также будет включать в себя ограничение на неопубликованный контент, поскольку пользователь не разрешено это видеть. Это вообще хорошая вещь.

Так что, если вы используете «неопубликованный» для обозначения чего-то другого, например, «не достаточно интересный для обычного выхода, но, возможно, интересный для некоторых людей», то я думаю, что на самом деле это хорошая идея представить другой способ представления этого информация.

Если вы читаете этот ответ и думаете «но я здесь не создаю публичный API, это только для моего привилегированного приложения, которое должно иметь те же привилегии, что и у меня», тогда ключ API или токен на предъявителя что ты хочешь:

https://www.npmjs.com/package/apostrophe-headless#building-apps-without-apostrophe-ui-bearer-tokens-and-api-keys

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...