FOSUserBundle和FOSOAuthServerBundle的AUTHENTICATED_FULLY区分

时间:2018-09-30 08:00:58

标签: symfony fosuserbundle symfony-3.4 fosoauthserverbundle

我正在尝试使用Symfony开发一个API,该API可通过前端应用程序使用。 我安装了FOSUserBundle来管理登录和用户注册,我还安装了FOSOAuthServerBundle来保护带有令牌的API 我设法使所有带有前缀“ / api”的路由只能通过有效令牌访问 另一方面,只有在用户登录后,我才能使某些道路无法通行

我的security.yml

imports:
    - { resource: "@FOSOAuthServerBundle/Resources/config/security.xml" }
security:
    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt
    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN
    providers:
        in_memory:
            memory: ~
        fos_userbundle:
            id: fos_user.user_provider.username
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        api:
            pattern: ^/api
            fos_oauth: true
            stateless: true
            anonymous: false
        oauth_authorize:
            pattern: ^/oauth/v2/auth
            form_login:
                login_path: oauth_server_auth_login
                check_path: oauth_server_auth_login_check
                provider: fos_userbundle
            anonymous: true
        oauth_token:
            pattern: ^/oauth/v2/token
            security: false
        main:
            form_login:
                provider: fos_userbundle
                csrf_token_generator: security.csrf.token_manager
            logout:       true
            anonymous:    true
    access_control:
        - { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }

你能告诉我该怎么做吗?

谢谢:)

0 个答案:

没有答案