ob娱乐下载Symfony的安全系统一直很灵活。但在过去的几年里,利用这种力量也变得越来越容易:通过创造后卫的身份验证器而且选民对于复杂的授权规则。
但是,我们可以做得更多。例如,Symfony安全用ob娱乐下载户所以它们很灵活,设置起来可能令人困惑。创建Guard身份验证器虽然清晰且功能强大,但需要做一些工作。我们能同时拥有灵活性和快速发展吗?我想是的-感谢两个新命令添加到MakerBundle.
提供的瑞安·韦弗在# 250.
准备好启动你的安全系统了吗?首先你需要一个用户。但是,您的实体需要保存到数据库中吗?你的应用程序负责检查密码吗?MakerBundle 1.7将指导您完成这些决定,并生成您所需要的:
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21
$php bin/console make:user安全用户类的名称(例如user) [user]: > user是否要存储用户数据在数据库(通过Doctrine)?(yes/no) [yes]: > yes输入一个唯一的属性名“显示”的名字为用户(例如电子邮件,用户名,uuid) [email]: >电子邮件将这个应用程序需要哈希/检查用户密码?选择不如果密码不需要或将由其他系统(例如单点登录服务器)检查/散列。这个应用程序需要吗哈希/检查用户密码?(yes/no) [yes]: > yes created: src/Entity/User.php created: src/Repository/UserRepository.php updated: src/Entity/User.php updated: config/packages/security.yaml
就是这样!根据您的回答,该命令将创建一个User类/实体而且更新你的security.yaml文件配置安全密码编码器(如果需要)和用户提供程序。生成的代码具有清晰的注释,因此您可以根据需要继续更新所有内容。
security.yaml
提供的尼古拉斯•菲利普在# 266.
现在有了User类,是时候让用户登录了。想要一个完整的表单登录系统在一个命令?在MakerBundle 1.8中,这不是问题。新:身份验证命令可以根据您的回答创建一个完整的表单身份验证系统,或一个空的身份验证器:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
$php bin/console make:auth哪种类型的认证做你想要什么?[空authenticator]:[0]空authenticator[1]登录表单authenticator > 1要创建的authenticator的类名(如AppCustomAuthenticator): > LoginFormAuthenticator选择名称为控制器类(例如SecurityController) [SecurityController]: created: src/Security/LoginFormAuthenticator.php updated: config/packages/ Security .php创建:templates/security/login.html.twig
这将创建登录路由、控制器和模板好吧作为Guard身份验证器,处理登录提交,包括CSRF保护,并在成功和错误时智能重定向。您的验证器类将在内部有一些需要完成的次要todo(通常只有1个)。但是,您不需要修改任何配置文件。
结果呢?一个功能齐全的登录系统在几分钟内你完全控制。自定义模板以匹配您的外观,并更新身份验证器中的代码,以添加登录过程中需要的任何特殊内容。
您还可以生成一个“空”身份验证器,用于您需要的任何其他身份验证。想要支持生成其他类型的身份验证器?只要打开一个拉请求!
安全快乐!
帮助Symfonyob娱乐下载项目!
与任何开源项目一样,贡献代码或文档是最常欧宝官网下载app见的帮助方式,但我们也有广泛的赞助机会.
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Kevin Verschaeve is a certified Symfony engineer.
为了确保评论保持相关性,旧帖子将被关闭。
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now