PHP + Mysql + Docker + Facebook Login скачать сайт без регистрации и СМС

Для «игрового» проекта выращивания стажеров мною был создан репозиторий открытый кода, очень простой и очень наглядный пример как мы будем наворачивать функциональность от «базовый базовый» яваскрипт и php, до чуть более чем продвинутой версии. На данный момент — номер коммита «для статьи» — Вы можете скачать, запустить (по инструкции в корне проекта) и получить готовый работающий минисайтик с логином пользователя через Facebook и сохранением его данных в базу. Прелесть контейнеров — что можно не только собирать (как первый для примера собирается, но и запускать чужие без сборки).


Как все работает

В «первом» index.php файле подключаются все библиотеки и выводится основной шаблон, куда мы включаем простейший вывод «залогинен» ли пользователь. Строго говоря — так делать не стоит и код разделять лучше, но это после с усложнением. Итак — есть шаблон и проверка сессии. И есть мегакрутой яваскрипт, где мы используем библиотеку Facebook для генерации запроса на логин.

Опять строго говоря некрасиво — но мы и это изменим потом, пока что нам важно — что мы не просто логин делаем, а вызываем и нашу внутреннюю функцию «сохранения» данных — /login/fb_callback.php

Сохранение данных от Facebook — это по сути взятие по токену (полученному при логине) актуальных данных, т.е. мы не никогда не верим ничему переданному пользователем, а получаем какбы «адрес» его страницы в соцсети и, если ответом на запрос к соцсети будет «да все верно», сохраняем ее данные. Мы для этого даже composer подключили (а класс базы пока свой ага))))

И сохраняем и в базу, и в сессию, и красиво выводим. При выходе — просто у себя закрываем сессию — т.е. сообщать в Facebook нам незачем, а себе можем и пометить все что нужно (если захотим видеть актуальные данные по сеансам активным пользователей), и не помечать

One Response to “PHP + Mysql + Docker + Facebook Login скачать сайт без регистрации и СМС”

Оставить комментарий

XHTML: Вы можете использовать такие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">