Задать вопрос
ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode

Как реализовать API авторизации как у хабра (TM)?

Введение
Один API манипулирует аккаунтами, отвечает за хранение данных о пользователе и все привязки к соц сетям. Назовем его company, а API расположим:
api.company.com

Появляется проект, его назовем project. API расположен по адресу
api.project.com

Цель:
Для авторизации в project новый аккаунт создавать не нужно. Универсальный аккаунт для всех проектов находится в company. Концепция хабра с их TM - для локальный проектов аккаунт не нужен (а вот у проектов есть профиля).

Проблема:
Как выстроить архитектуру?
Какие средства для этого использовать?

Идея решения или как я себе это представляю:
На клиенте показывается окно авторизации, вводится логин пароль. Отправляется на API проекта:
api.project.com/login...
Из API проекта делается запрос на API с аккаунтами:
api.company.com/login...
Если все в порядке - выдается токен и возвращается в API проекта, сохранятеся и отправляется клиенту. Далее понятно, запросы идут с этим токеном.
P.S. Можно и напрямую делать запрос из клиента на
api.company.com/login...
но мне показалось лучше не миксовать и вынести логику.

Дополнительная инфа:
API закрытое. Использовать буду или JWT или Oauth 2.0 c грантом владельца (не нужно будет показывать браузер и просить разрешение, понятное дело клиент доверенный). Все API пишу на Lumen.

Слова благодарности со слезами на глазах:
Практически уверен что идея - костыль, и есть уже изобретенный хороший велосипед.
Буду благодарен за любую помощь!
  • Вопрос задан
  • 1163 просмотра
Подписаться 8 Оценить 7 комментариев
Решения вопроса 2
bigton
@bigton
Web-программист
AloneCoder
@AloneCoder
[object Object]
Про SSO уже подсказали, вот про люмен
https://github.com/zhimeilee/sso
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы