Pull to refresh

Расширенный скелет проекта PHPixie с аутентификацией и админкой

Reading time 2 min
Views 4.5K
image

Базовый скелет проекта PHPixie задуман быть минималистичным, чтобы не навязывать архитектуру пользователю. Но в нашем чате часто возникают вопросы о том как настроить авторизацию, стоит ли разделять фронтенд и бекенд в отдельные бандлы, как лучше организовать процессоры, и тд. Начинать с пустого проекта гораздо труднее для новых пользователей, что поднимает порог вхождения, к тому же иногда просто хочется начать на шаг вперед. Как раз для этого был создан расширенный скелет проекта, в котором это все уже работает.



Демо



Итак, более подробно что у нас тут:

  • Регистрация пользователей
  • Логин с опцией «запомнить меня»
  • Проверка логина на страницах
  • Панель администратора с отдельным логином
  • Администраторы хранятся в отдельной таблице, их можно добавлять через консоль
  • Возможность администратору имперсонировать любого пользователя


Использование
composer create-project phpixie/project-auth project

Настраиваем веб-сервер в папку project/web и готово. Один администратор уже добавлен, его логин phpixie / framework, но можно и добавить своего через консоль (к сожалению в PHPixie пока нет красивого компонента для вызова команд с консоли):
php addAdmin.php someUser somePassword


Проект настроен использовать SQLite базу данных которая лежит в database.sqlite. Вот ее структура для MySQL:
CREATE TABLE `users` (
    `id` INTEGER AUTO_INCREMENT PRIMARY KEY,
    `email` VARCHAR(255) NOT NULL UNIQUE ,
    `passwordHash` VARCHAR(255) NOT NULL
);

CREATE TABLE `userTokens` (
  `series` varchar(50) NOT NULL,
  `userId` int(11) DEFAULT NULL,
  `challenge` varchar(50) DEFAULT NULL,
  `expires` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`series`)
);

CREATE TABLE `admins` (
    `id` INTEGER AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(255) NOT NULL UNIQUE ,
    `passwordHash` VARCHAR(255) NOT NULL
);


Код на Github: github.com/PHPixie/Project-Auth

Если вам интересно как выглядит работа с PHPixie загляните в этот проект и надеюсь вы приятно удивитесь.
Tags:
Hubs:
-2
Comments 37
Comments Comments 37

Articles