首页 > 后端开发 > php教程 > 在Symfony 3中使用Guard验证更轻松的身份验证3

在Symfony 3中使用Guard验证更轻松的身份验证3

Christopher Nolan
发布: 2025-02-16 11:27:09
原创
1047 人浏览过

> SYMFONY'S GUARD组件:简化自定义身份验证

Symfony 2.8和3引入了守卫组件,大大简化了自定义身份验证的创建。 Guard与Symfony的安全系统无缝集成,提供了管理整个身份验证链的统一接口。这允许对身份验证过程进行广泛的自定义,包括提交表单,凭证验证以及处理成功和失败的身份验证尝试。 它的适应性扩展到各种身份验证类型,包括表格,基于令牌,社交媒体和API身份验证,并支持“记住我”功能和基于角色的访问控制。 重要的是,后卫增强而不是替代现有的符号安全机制;诸如

之类的方法保持功能。form_login>

Easier Authentication with Guard in Symfony 3

本文演示了一个基本形式的身份验证,需要访问。尽管传统形式的身份验证仍然可行,但强调了警卫的简化方法。 相同的原理适用于其他身份验证方法。 可以通过[this Repository](link_to_to_repository_here-替换为实际链接)的示例Symfony应用程序使用守卫身份验证。

安全配置ROLE_ADMIN

>功能安全配置需要用户类(代表用户数据)和用户提供者(检索用户数据)。 为简单起见,我们将使用Symfony的默认用户类使用Inmemory用户提供商。

文件开始如下:

security.yml(有关

>文件的全面详细信息,请参阅Symfony网站。)
security:
    providers:
        in_memory:
            memory:
                users:
                    admin:
                        password: admin
                        roles: 'ROLE_ADMIN'
登录后复制
>

防火墙是在security.yml键下定义的:>

>这允许匿名访问并指定firewalls作为注销路径。

键指定
        secured_area:
            anonymous: ~
            logout:
                path:   /logout
                target: /
            guard:
                authenticators:
                    - form_authenticator
登录后复制
(我们的服务名称)为身份验证者。

>访问规则:/logout guard form_authenticator>只有未身分的用户才能访问

>;所有其他路径都需要

    access_control:
            - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/, roles: ROLE_ADMIN }
登录后复制
>登录控制器

/login登录形式和控制器在ROLE_ADMIN>中定义

此操作显示基本的登录表格(由树枝模板渲染)。

后卫身份验证器服务

DefaultController

服务在
  /**
   * @Route("/login", name="login")
   */
  public function loginAction(Request $request)
  {
    // ... (Existing code to handle user and authentication error) ...
  }
登录后复制
>中定义:

>

类(下面详细介绍)扩展

form_authenticator> services.yml

此类实现后卫身份验证管道:
services:
    form_authenticator:
          class: AppBundle\Security\FormAuthenticator
          arguments: ["@router"]
登录后复制
  • getCredentials():提取从邮政请求中提取凭据到/login>
  • getUser():根据用户名检索用户。
  • >
  • checkCredentials():对存储的密码验证密码。
  • >
  • onAuthenticationSuccess():重定向到成功登录时的主页。
  • >
  • onAuthenticationFailure():重定向回到带有错误消息的登录页面。
  • >
  • start():需要在需要身份验证时重定向到登录页面。
  • >
  • supportsRememberMe():指示是否支持“记住我”功能。
  • >

结论

>这说明了使用护罩组件的功能登录系统。 多个身份验证者可以共存,需要入口点规范。 后卫补充,而不是替代,现有的Symfony安全功能。

常见问题(常见问题解答)

提供的常见问题解答部分提供了对后卫身份验证各个方面的详细说明,包括其与其他方法的差异,自定义选项,处理角色的处理,密码编码以及与数据库和社交认证的使用。 这些答案是全面的,并解决了共同的问题。

>

以上是在Symfony 3中使用Guard验证更轻松的身份验证3的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板