Какова лучшая практика для проектирования системы с 3 серверами, в то время как центральным является веб-сервис? (API), - PullRequest
0 голосов
/ 30 марта 2020

У меня есть проект, в котором я разрабатываю систему с 3 серверами, которая состоит из следующего:

  1. Frontend (веб-приложение, мобильный телефон и т. Д.) - в настоящее время начинается с vue. js (nuxt. js) веб-приложение.
  2. Backend - функционирование в качестве веб-службы RESTful (API) и выполнение действий CRUD. В настоящее время я создаю его с помощью PHP Laravel.
  3. Еще один сервер, на котором содержатся скребки веб-сайтов, всегда работающие для задач утилизации и по требованию (получение запросов от веб-службы в п.2).

Я начинаю с п.2 - бэкэнда. Следуя большинству руководств и документации в Интернете, я создаю защищенный логин с токенами OAuth2 для получения информации. Однако теперь мне нужно будет хранить на двух других серверах токены, сделанные для каждого подключения к веб-сервису, что означает, что мне нужно будет поддерживать другой набор баз данных для веб-интерфейса и отслеживать токены, возвращаемые для каждого пользователя моей веб-службой.

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

Как мне поддерживать постоянное соединение между интерфейсом и бэкэндом без использования токенов? Я хочу избежать создания двух разных баз данных, которые могут быть практически идентичными. В моем видении я хочу, чтобы пользователь регистрировался один раз в сервисе (через традиционную регистрацию электронной почты, социальную аутентификацию и т. Д. c.) И предоставлял бесплатный доступ к веб-сервису, не беспокоясь о безопасности, токенах и т. Д.

То же самое относится и к третьему серверу (скребкам) ​​- я хочу, чтобы они поддерживали бесплатный и безопасный доступ к веб-сервису.

Что было бы лучшим вариантом здесь? Ваша помощь будет очень полезна

...