2015-04-08 3 views
0

Я хочу создать RESTful API с помощью Zend Framework 2. Хотя я довольно неопытный с ZF2, я выбрал эту структуру из-за ее свободного coupeling и факта что код проверяется на регулярной основе. Я нашел инструмент Apigility, предоставляемый Zend, и, похоже, довольно просто реализовать вещи. Но есть одна вещь, которая не покрывается напрямую, и я даже не уверен, что Apigility имеет смысл для меня:Внедрение RESTful API с механизмом управления доступом с использованием Apigility

Мне нужна концепция роли пользователя, где некоторые пользователи могут просматривать и изменять только те ресурсы, которые они создали сами, в то время как другие пользователи могут просматривать и изменять все ресурсы. Существуют также конечные точки (контроллеры), которые доступны только для определенных пользователей.

Управление разрешениями на определенные конечные точки может быть реализовано с помощью модуля ACL, но я не знаю, как добиться фильтрации ресурсов.

+1

В чем вопрос? – kaylum

ответ

1

Вам нужно будет взять пару стратегий, чтобы получить все это.

Управление доступом к конечной точке можно обрабатывать путем расширения прослушивателя авторизации по умолчанию (или добавления дополнительных прослушивателей), предоставляемого zf-mvc-auth. Это должно позволить вам контролировать, можно ли вообще увидеть конечную точку.

Что касается контроля доступа к вашим ресурсам (фильтрация), вам, вероятно, потребуется ввести в свои ресурсы службы контейнер авторизации какой-либо природы, чтобы обрабатывать вашу логику авторизации там. Взгляните на поваренную книгу zfc-rbac для того, что могло бы выглядеть (https://github.com/ZF-Commons/zfc-rbac/blob/master/docs/07.%20Cookbook.md#a-real-world-application-part-4---checking-permissions-in-the-view)