Структура микросервисов с Laravel

#laravel #microservices

#laravel #микросервисы

Вопрос:

На данный момент я должен разработать проект с 5 микросервисами, но в будущем у него может быть более 50. И у меня большая проблема с авторизацией.

Всем микросервисам требуется авторизация для доступа к информации, вот в чем проблема.

Как я могу это сделать?.

Я думал, что некоторым это нравится:

  • ms1.blabla.com
  • ms2.blabla.com
  • auth.blabla.com

Создайте микросервис «auth» и храните здесь пользователей, пропуска, токены и другие материалы.

Это нормально? или любое другое предложение?

Другая проблема заключается в том, как я получаю данные из других сервисов? Мне нужно каждый раз вызывать микросервис аутентификации в микросервисе ms1 перед выборкой данных для проверки токена? как промежуточное программное обеспечение в каждом микросервисе?… Это звучит очень ужасно и делает много запросов к аутентификации.

Кто-нибудь знает, как это сделать наилучшим образом? несколько руководств, например, пакеты, idk. Любая идея хорошо воспринимается.

Другая проблема заключается в использовании Laravel или Lumen (?). Я думал, что Laravel в каждом проекте делает его более масштабируемым во времени, а интерфейс — в Vue. Или просто Lumen, потому что теперь это просто база данных и данные, не более.

Спасибо

Ответ №1:

если вам нужно обрабатывать аутентификацию в вашем API, я действительно предлагаю полагаться на Passport (https://laravel.com/docs/8.x/passport ) для обработки авторизации вместо того, чтобы создавать что-то свое.

Что касается выбора Laravel против Lumen, это зависит от того, как вы планируете обрабатывать интерфейс. Lumen — это просто более простая / быстрая версия Laravel, но вы не сможете обрабатывать сеанс, файлы cookie и т.д. Если вы отправляете запросы к своим микросервисам с нескольких интерфейсов (например, веб-сайта и мобильного приложения) Я предлагаю использовать Lumen и создавать только API. Вы можете найти более подробную статью о различиях между ними здесьhttps://medium.com/@jeffalmeida_27473/laravel-vs-lumen-what-should-i-use-63c196822b2d