Обменять Slim на Laravel - PullRequest
0 голосов
/ 11 июля 2020

У меня есть restfull API, созданный с помощью Slim3 с аутентификацией JWT.

Я начал изучать Laravel и увидел, что в нем есть много интересных функций, которые упрощают создание API.

Итак, я оцениваю возможность переключения фреймворка с Slim на Laravel в следующей версии API.

Итак, я хотел бы уточнить у самых опытных, есть ли какой-либо инструмент в Laravel который отвечает всем требованиям, которые у меня есть в API.

Ниже я описываю операцию.

В дополнение к ресурсам, которые будут потребляться (ПРОДУКТЫ, ФИНАНСОВЫЕ, АКЦИИ и т. д. c. ) У меня есть в API таблицы КОМПАНИИ, ПОЛЬЗОВАТЕЛИ и РАЗРЕШЕНИЯ.

При регистрации нового пользователя он все равно не получит доступа к каким-либо ресурсам, кроме его собственной регистрации. Таким образом, пользователь запрашивает разрешение, которое создает строку в таблице PERMISSOES с неактивным статусом, как показано ниже:

PERMISSION_ID COMPANY_ID USER_ID RESOURCE   GET POST PUT DELETE ACTIVE 
    1             1         1    FINANCIAL   1   1    0    0      0

Это запрошенное разрешение, когда оно активно, предоставит доступ к ФИНАНСОВОМУ ресурсу с COMPANY_ID 1, чтобы методы GET и POST для USER_ID 1.

Разрешение будет неактивным до тех пор, пока пользователь ADMIN из этой компании не изменит статус PERMISSION на активный.

Таким образом, после входа пользователя в систему и API возвращает JWT, который должен отправляться как заголовок во всех запросах. Каждый раз, когда пользователь отправляет запрос, например, на ФИНАНСОВЫЙ маршрут, я делаю запрос в таблице PERMISSOES и проверяю, разрешено ли пользователю выполнять этот ресурс с помощью этого метода и для этой компании. Если разрешено, доступ предоставляется, а если он не разрешен, вернуть ошибку 401.

Я хотел бы реализовать этот лог c в Laravel, есть ли какой-либо ресурс, который облегчает разработку, или мне придется делать все вручную, как я делал в Slim?

Если неясно, что мне нужно, дайте мне знать, что я меняю вопрос.

Любая помощь приветствуется.

Это может быть учебник, видео, подсказка, серьезно, что угодно.

Заранее благодарю вас всех.

1 Ответ

0 голосов
/ 11 июля 2020

Это нужно делать вручную. Однако вы можете легко добиться этого в laravel. Однако есть несколько библиотек / пакетов, которые я могу вам предложить.

Для jwt используйте этот https://github.com/tymondesigns/jwt-auth

Для разрешения laravel это один из хороших пакетов https://docs.spatie.be/laravel-permission/v3/introduction/

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

https://laracasts.com/

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