如何在 Symfony 中使某些页面不需要身份验证

b85*_*411 0 symfony

目前,我在 Symfony2 Web 应用程序中访问的任何页面都会引导用户登录(如果他们尚未登录)。这没关系 - 除了有一组页面(我的 webservices,将位于 /webservice/* 下),我不想强​​制进行身份验证。因为它是一个 JSON Web 服务,不会面向用户,显然我不希望它尝试重定向到登录表单。

这是我当前的 security.yml 防火墙:

firewalls:
dev:
    pattern:  ^/(_(profiler|wdt)|css|images|js)/
    security: false

login:
    pattern:  ^/$
    security: false

secured_area:
    pattern: ^/
    form_login:
        check_path: my_app_authentication_login
        login_path: my_app_authentication_homepage
        username_parameter: form[username]
        password_parameter: form[password]
        default_target_path: my_app_task_homepage
        always_use_default_target_path: true
    logout:
        path: my_app_authentication_logout
        target: my_app_authentication_homepage
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能使 /webservice/* 免于身份验证?

Tom*_*ski 5

您需要添加到您的security.yml文件中(这必须在您的secured_area, 订单之前):

your_whatever_name:
    pattern: ^/webservice/
    security: false
Run Code Online (Sandbox Code Playgroud)

检查文档以获取更多信息

  • 还可以使用 IS_AUTHENTICATED_ANONYMOUSLY,这仅意味着该路由适用于未登录的用户。 (3认同)