Шаги по использованию Directus CMS API

Я только что установил Directus, но мне нужно создать интерфейс HTML, и я не могу извлечь данные через API. Как я могу использовать статический API? То есть с каким-то статическим токеном (фронт сделает это с помощью PHP).

У меня установлен пакет Directus (APP + API https://github.com/directus/directus) и HTML будет размещен на том же сервере.


person Richard Bracos    schedule 25.11.2019    source источник


Ответы (2)


Directus имеет встроенные статические токены, которые могут быть назначены любому пользователю Directus и наследуют разрешения этого пользователя. Вы можете установить этот статический токен в directus_users.token (открытый текст), а затем использовать его для аутентификации в API. Это менее безопасно, чем другие методы аутентификации, но это зависит от того, как вы его используете.

https://docs.directus.io/api/reference.html#tokens

Другим вариантом было бы установить данные, которые вам нужны, как «общедоступные». Очевидно, что это работает только в том случае, если эти данные являются общедоступными (READ)... но это относится ко многим веб-сайтам.

person RANGER    schedule 26.11.2019
comment
Что такое directus_users.token и где его найти? К сожалению, ссылка больше не работает. Благодарю вас! - person Schoon; 27.01.2021

Спасибо RANGER, у меня есть следующая установка:

URL-адрес: https://cms.domain.com/public/ (APP + API Directus)

Я просмотрел столбец таблицы, которую вы комментируете, и действительно уже установлен токен: BGJFwQ1KlHnH91V2oIwMbOsG.

$contents = file_get_contents('https://cms.domain.com/public/_/collections/categories?access_token=BGJFwQ1KlHnH91V2oIwMbOsG');
var_dump($contents);

Но не получается, я перечитал документацию более 10 раз и уже несколько дней с темой, хотел решить сам, но не могу найти ошибку ни через file_get_contents(), ни с помощью curl в PHP для вызова API .

АДМИНИСТРАЦИЯ Directus находится в: https://cms.domain.com/public/admin/#/

Я взял токен у пользователя ADMIN, и поэтому я понимаю, что у вас есть все права на использование API. В примере я хотел перечислить «категории» (коллекцию), в которых 3 записи.

Решено: curl https://cms.domain.com/public/name-of-project/collections?access_token=BGJFwQ1KlHnH91V2oIwMb34343G

Решено: я должен использовать **название проекта вместо "_" (проект по умолчанию).**

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

person Richard Bracos    schedule 26.11.2019