Встала задача реализовать сервис аутентификации, по факту система - точная копия системы, которая используется для аутентификации проектами "Тематические медия", т.е. здесь, на хабре, мегамозге и.т.д.
Вопрос первый: Yii2 или Laravel? В данном случае лучше на том, где получиться быстрее. Yii знаю (4 года), Laravel ещё не использовал. Осложняется тем, что один из новых проектов сделан на Laravel (5.0 или уже 5.1) и в последствии платформа возможно всего вся будет мигрировать на него. Но в Laravel придётся всё что касается браузерной части собирать самому из community компонентов, что может сильно замедлить работу.
Вопрос два: Как правильно оформить вообще всю структуру с точки зрения компонент и логики?
Т.е. на самом сервисе +- понятно что делать с авторизацией: ставим extension который умеет в социальную аутентификацию + добавляем обычную форму регистрации для тех, кто просто хочет по e-mail и паролю входить (если кто подскажет расширение, где это уже скомбинировано - буду благодарен).
А вот, собственно, что делать с связкой между моими проектами и сервисом аутентификации? Делать своего OAuth2 провайдера? Или какой-то другой облегчённый вариант?
В общем, буду благодарен за любые наставления.
Спасибо.
Арвид Годюк: у каждого "производительность" разная. Кто то хочет за 6мсек отправить ответ, а ктото за 100. так что сначала сделайте временные рамки и потом узнает легко или нет
v- smerti: в моём случае 6 мс не надо, но о производительности я сам позабочусь. Сейчас мне нужно сделать рабочую первую версию, поэтому вопрос стоит в плоскости архитектуры и как правильно реализовать.
Хэх. Для OAuth сервера фреймворк. ахахах. До слёз. Я на нативном пхп за вечер сделаю (это конечно с помощью гитхаба)
UPD.
OAuth сервер должен иметь примерные вызови апи
oauth.example.com/auth?redirekt=куда перенаправить пользователя&login=&pass=
делает редирект по адресу redirekt
к примеру если авторизация успешна
redirekt.com?json={"auth" : true, "token" : "json web token"}
не успешна
redirekt.com?json={"auth" : false, "token" : "Пароль не верный"}
Вот и всё. Зачем вам фреймворк?))
UPD.
Обычно этот сервер ещё и сохраняет юзеров в бд.
Всё остальное делаем с помощью js (одностраничное приложение которое написано за час - два)
Это вопрос поддержки командой и использование единого инструментария. И во что оно в последствии вырастет неизвестно. А поддерживать нужно будет долго.
v- smerti: +- да, но тут ещё пара страниц по менеджменту будет и мне нету смысла морочится с ручной реализацией. Моя задача сделать быстро и правильно, и в добавок позаботится о безопасности (у меня щас перед глазами как раз самопал который дырявый насквозь, не надо мне такое щастье)
Арвид Годюк: сервер не должен за это отвечать!!!
Сервер должен проверить логин/пароль и вернуть токен, возможно спросить о предоставлении прав. Всё! Всё остальное это уже не OAuth.