Symfony不会对用户进行身份验证

时间:2017-08-03 12:40:18

标签: php symfony oauth fosuserbundle

我有一个Symfony 2.8网络应用程序,就像用户实体的FosUserBundle API和用于身份验证的Fosoauthserver一样。

我的security.yml是这样的:

security:
encoders:
    FOS\UserBundle\Model\UserInterface: bcrypt

role_hierarchy:
    ROLE_ADMIN:       [ROLE_USER, ROLE_ALLOWED_TO_SWITCH]
    ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
    fos_userbundle:
        id: fos_user.user_provider.username_email

firewalls:
    oauth_token:
        pattern:    ^/oauth/v2/token
        security:   false

    oauth_authorize:
        pattern:    ^/oauth/v2/auth
        form_login:
            provider: fos_userbundle
            check_path: /oauth/v2/auth_login_check
            login_path: /oauth/v2/auth_login
        anonymous: true

    api:
        pattern:    ^/v1
        fos_oauth:  true
        stateless:  true
        switch_user_stateless: true
        anonymous:  false

access_control:
    - { path: ^/v1/register, role:  IS_AUTHENTICAIS_AUTHENTICATED_ANONYMOUSLY  }
    - { path: ^/v1/login, role:  IS_AUTHENTICATED_ANONYMOUSLY  }
    - { path: ^/v1, role:  IS_AUTHENTICATED_FULLY  }

我可以注册用户并登录,正确获取access_token,但是当我尝试访问我的API的任何端点时,我可以在不登录的情况下访问。

甚至,如果我在标题中设置了正确的访问令牌,如果我执行$ this-> getUser(),我会得到null,因为在任何时候我的应用程序都在进行身份验证检查。

有什么想法吗?我制作了不同的API,从来没有遇到过这个问题。 谢谢!

0 个答案:

没有答案