j7mbo / silex-auth-skeleton
Silex 框架的骨架,已集成登录、MySQL认证(doctrine)、防火墙、路由、配置文件和auryn DiC。
dev-master
2015-04-19 13:33 UTC
Requires
- dflydev/doctrine-orm-service-provider: 1.0.*@dev
- entea/silex-twig-simple-asset-extension: dev-master
- ircmaxell/password-compat: dev-master
- monolog/monolog: 1.6.*@dev
- rdlowrey/auryn: dev-v1.0.0-dev
- silex/silex: 1.1.*
- symfony/security: 2.3.*
- symfony/twig-bridge: 2.3.*
- symfony/yaml: 2.4.*@dev
- twig/twig: >=1.8,<2.0-dev
This package is not auto-updated.
Last update: 2024-09-14 14:45:10 UTC
README
对于要找到最佳代码和目录结构以构建一个有效的Silex骨架而感到烦恼?没关系,看这里。这段代码是满足所有需求的绝佳起点。
更新(2015年4月19日):请关注新的Aurex项目,它将取代silex-auth-skeleton。它更快、更优雅,并使用最新的Silex(2.x)和Symfony 2组件(2.7.*)。
特性
- 配置从YAML文件加载,就像在Symfony2中一样
- 特定环境的配置文件(dev/live)、路由配置文件、防火墙文件
- 使用MySQL认证(用户名 或 邮箱)和SHA1密码要求的登录表单
- 已设置好Twig,可立即用于模板
- 出色的自动装配DiC Auryn,用于自动对象实例化/连接
- 正在运行的防火墙 - 目前,匿名用户可以访问
/
和/login
。其他所有内容都是受保护的! - 通过ircmaxell的 password_compat 库进行BCrypt密码认证
- Doctrine ORM集成,包括Entity / Repositories / 命令行(Symfony拥有的酷炫功能)
- 代码在控制器中,请求自动路由到这些控制器
- 布局优雅且符合PSR规范的代码
安装
您可以直接通过 clone此仓库 来获取代码
$ git clone git://github.com/j7mbo/silex-auth-skeleton.git
一旦您有了代码,您需要使用 composer 来更新您的依赖项
$ cd silex-auth-skeleton/
$ composer update
您需要以下数据库表
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(100) | NO | UNI | | |
| email | varchar(100) | NO | UNI | NULL | |
| password | varchar(255) | NO | | | |
| roles | varchar(255) | NO | | | |
| is_active| tinyint(1) | NO | | 0 | |
+----------+------------------+------+-----+---------+----------------+
创建上述数据库和表的SQL语句
mysql> CREATE DATABASE `silexauth`;
mysql> CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(100) NOT NULL DEFAULT '',
`email` varchar(100) NOT NULL,
`password` varchar(255) NOT NULL DEFAULT '',
`roles` varchar(255) NOT NULL DEFAULT '',
`is_active` tinyint(1) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
您还需要一个 测试用户
mysql> INSERT INTO `users` (username, email, password, roles) VALUES (
'test', 'test@test.com', '$2y$10$k5O1HnSI8N0ORJQnMnFpR.Z0.r7nx4Epk0a8J3d/sCdATF0BStBKe', 'ROLE_USER', '1'
);
您还需要一个 主机 / 虚拟主机 来路由所有内容。
将 "127.0.0.1 silex-auth.local
"(不带引号)添加到您的 /etc/hosts
文件中。
运行以下命令来为 silex-auth.local
创建一个 虚拟主机文件。
$ cd /etc/apache2/sites-available
$ sudo nano silex-auth.local
将以下内容复制/粘贴到您的 silex-auth.local
文件中
<VirtualHost *:80>
ServerName silex-auth.local
ServerAlias silex-auth.local
DocumentRoot "/home/james/Dev/github/silex-auth/web/"
DirectoryIndex index.php
<Directory "/home/james/Dev/github/silex-auth/web/">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
现在保存它,启用虚拟主机,并重启apache,以确保一切正常加载。
$ ctrl + x, then y, then enter
$ sudo a2ensite silex-auth.local
$ sudo service apache2 restart
重要的是,您还需要在 silx-auth 根目录中(不是 /web
)创建一个 .htaccess
文件,其中包含
FallbackResource /index.php
现在您应该能够在浏览器中指向 http://silex-auth.local
并看到主页。点击登录链接后,您可以使用 "test" 和 "password",或者 "test@test.com" 和 "password" 登录。