• Как правильно определять, какой guard используется в сессии?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    На сайте есть система авторизации, которая позволяет пользователю зарегистрироваться
    Это система аутентификации, надо понимать разницу.

    Завтра пользователь, зареганный через основную систему, захочет привязать ВК-аккаунт. И что делать будешь? Создавать его дубль? А послезавтра добавятся Одноклассники. Заведешь третью таблицу?

    Правильно:
    — таблица+модель юзеров;
    — таблица+модель соц. аккаунтов с мылом/токеном/аватаркой, связанная с таблицей юзеров.

    Если регается через соц.сеть, то создаёшь юзера с пустым/генерируемым паролем, дальше выстраиваешь логику аутентификации.
    Ответ написан
    Комментировать
  • Как парсить динамические страницы с использованием php?

    @d-sem
    Самое универсальное решение это поднять на nodejs сервис на базе puppeteer https://github.com/puppeteer/puppeteer и переложить на него всю ответственность по парсингу динамических страниц. А в него уже передавать запросы.

    С точки зрения php теоретически можно попытаться разобраться в хитросплетениях API запросов, если на целевом сайте вдруг совсем не делали защиту парсинга. Можно подключить любой компонент для headless браузеров.

    Но с точки зрения кпд и качества лучше всего сделать сервис на инструментах которые изначально для этого заточены. Связка nodejs + puppeteer с отдачей данных по api (http или очереди - rabbitmq в rpc) это очень мощное и в то же время простое решение. Хотя бы просто потому что puppeteer это оболочка над google chrome, которую очень удобно дебажить в консоли браузера.
    Ответ написан
    Комментировать