php – 如何将FOSUserBundle配置为启用FOSOAuthServerBundle的服务器的身份验证提供程序

前端之家收集整理的这篇文章主要介绍了php – 如何将FOSUserBundle配置为启用FOSOAuthServerBundle的服务器的身份验证提供程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将FOSUserBundle设置为启用FOSOAuthServerBundle的服务器的身份验证提供程序.在我尝试实现FOSUserBundle之前,FOSOAuthServerBundle已经正常工作,而且FOSUserBundle也没有FOSOAuthServerBundle工作,但是我无法让他们一起工作.

我的问题是在下面的security.yml中的oauth_authorize:firewall中的身份验证提供程序应该指定什么?

# app/config/security.yml
security:
    providers:
    fos_userbundle:
        id: fos_user.user_provider.username

    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

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

        oauth_authorize:
            pattern:    ^/oauth/v2/auth

            # WHAT GOES HERE?

        api:
            pattern:    ^/api
            fos_oauth:  true
            stateless:  true

    access_control:
        - { path: ^/api,roles: [ IS_AUTHENTICATED_FULLY ] }

我正在尝试验证用户,而不是客户端.非常感谢.

您应该在config.yml中具有以下内容
fos_user:
   db_driver: orm
   firewall_name: main
   user_class: Zoef\UserBundle\Entity\Userere

和这样的oauth服务器

fos_oauth_server:
    db_driver: orm
    client_class:        {PATH TO ENTITY}\Client
    access_token_class:  {PATH TO ENTITY}\AccessToken
    refresh_token_class: {PATH TO ENTITY}\RefreshToken
    auth_code_class:     {PATH TO ENTITY}\AuthCode
        service:
            user_provider: fos_user.user_provider.username

而security.yml应该是这样的:

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512
    providers:
        fos_userbundle:
            id: fos_user.user_provider.username
    firewalls:
        oauth_token:
            pattern:    ^/oauth/v2/token
            security:   false

    access_control:
    - { path: ^/,roles: ROLE_ADMIN }

你可以测试它是否有效,因为当你得到任何url你应该得到这样的回复

{“error”:“access_denied”,“error_description”:“OAuth2 authentication required”}

猜你在找的PHP相关文章