#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