Базовый скелет проекта 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 загляните в этот проект и надеюсь вы приятно удивитесь.
ссылка на оригинал статьи https://habrahabr.ru/post/281160/
Добавить комментарий