Базовый скелет проекта 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 загляните в этот проект и надеюсь вы приятно удивитесь.