Как организована аутентификация через сторонний сервис?
Вопрос в контесте пыха+ларавел.
Вопрос по регистрации аутентификации.
У меня есть веб-сервис на ларавел (апишка), назовем его "подчиненный сервис", он на отдельной впс.
У этого сервиса есть как публичные так и приватные методы.
Но на нем нет регистрации, а есть только "авторизация через" через какой-то "главный сервис", не вк, гугл и тп через свой "главный сервис", этот главный сервис пусть будет совсем на другом домене.
У меня несколько вопросов:
1) Верно ли я понимаю, что главный сервис должен мне (для моего подчиненного сервиса(бекенда)) предоставить Oauth имплементацию, он должен как-то генерировать токены (пускай jwt) и отдавать их мне?
2) у меня на сервисе же есть таблица users и верно ли я понимаю, так как нет регистрации, то в этой табличке записи будут появляться исключительно через кнопку "авторизация через" (в контексте этого вопроса), то есть когда на главном сервисе "дали доступ" и он отправил токен + инфу о клиенте, а я эту инфу о клиенте у себя в таблицу сохранил (создал клиента), под своим каким-то id верно (ну и user_id из главного сервиса тоже сохранил)?
3) мой сервис так же знает секрет, чтобы проверить jwt, а когда токен протух - фронт обращается в главный сервис за перевыпуском, я у себя на сервисе (базе) ничего по токенами не храню, просто валидирую выданный мне токен и все?
я все так понимаю или где-то собираюсь лютую дичь сотворить?
у меня основная проблема в "синхронизации" юзеров главного и моего сервиса.. что делать если он почту там поменял или фио, как мне об этом узнать.. а должен ли я вообще хранить у себя таблицу users (получается почти копию с главного), ну а если не хранить то как.. у меня типа заказы, заказы привязаны к кому-то user_id,а у него ест ькакие-то данные, не бегать же каждый раз куда-то далеко за этими данными...
Дмитрий, мой сервис - это приложение на ларавел на отдельной впс, реализовано как json api, рядышком фронт на react общается с моим сервисом по апи.
А есть еще один «главный сервис» и он не мой, но у него есть юзеры и он должен «выдавать» их мне (как я понимаю по oAuth2), на моем сервисе нет кнопки «зарегистрироваться», только кнопка «войти через главный сервис», те клиентов «сам» я не регистрирую, а только лишь получаю в колбеке от главного сервиса
Дмитрий, спасибо за ответ. Пойду гуглить дальше. Идея на каждый запрос обращаться в главный сервис чтобы проверить токен - убъет мое приложение. (Пункт 3)
Очень узкое место. Вдруг главный не отвечает, вдруг тайм-аут 29сек от него, вдруг еще чего, а у меня пользователи так и останутся висеть, все их запросы будут разворачиваться по тайм-ауту в самом начале при валидации токена, ну нафиг такой подход, буду искать новый, ходить каждый раз за валидацией токена куда-то далеко не вариант.
А к данным пользователя я буду обращаться крайне редко, при авторизации я же у себя юзера сохраняю в базе и работаю уже «локально». Обновлять его поля только при следующей его авторизации значит буду