Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 访问oauth2服务器中的/api方法_Symfony_Oauth 2.0_Fosuserbundle_Fosrestbundle - Fatal编程技术网

Symfony 访问oauth2服务器中的/api方法

Symfony 访问oauth2服务器中的/api方法,symfony,oauth-2.0,fosuserbundle,fosrestbundle,Symfony,Oauth 2.0,Fosuserbundle,Fosrestbundle,我正在尝试基于FOSOauthServerBundle、FOSRestBundle和FOSUserBundle创建oauth2服务器。我创建了一个演示应用程序来测试myoauth服务器,但它无法通过GET reguest接收数据 (收到401错误'error=“访问被拒绝”,error\u description=“OAuth2 需要身份验证“) 尽管用户已通过身份验证且客户端已正确接收访问令牌 我应该如何实现api控制器,以便oauth2执行身份验证过程 此外,我还想看一看基于这些包的真正工作

我正在尝试基于
FOSOauthServerBundle
FOSRestBundle
FOSUserBundle
创建oauth2服务器。我创建了一个演示应用程序来测试my
oauth服务器,但它无法通过GET reguest接收数据

(收到401错误'error=“访问被拒绝”,error\u description=“OAuth2 需要身份验证“)

尽管用户已通过身份验证且客户端已正确接收访问令牌

我应该如何实现api控制器,以便oauth2执行身份验证过程

此外,我还想看一看基于这些包的真正工作的oauth服务器示例,以便能够在其上检查我的应用程序

my security.yml:

jms_security_extra:
    secure_all_services: false
    expressions: true

security:
acl:
    connection: default

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

providers:
    in_memory:
        memory:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
    fos_userbundle:
        id: fos_user.user_provider.username

encoders:
      FOS\UserBundle\Model\UserInterface: sha512
      Symfony\Component\Security\Core\User\User: plaintext

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

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

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

    secured_area:
        pattern:    ^/
        anonymous: ~
        form_login:
            provider: fos_userbundle
            check_path: /login_check
            login_path: /login
            always_use_default_target_path: true
            default_target_path: /

access_control:
    - { path: ^/oauth/v2/auth_login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/oauth/v2/auth, role: ROLE_USER }
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY}
    - { path: ^/, roles: ROLE_USER }
    - { path: ^/api, roles: [ IS_AUTHENTICATED_FULLY ] }

谢谢。

提交答案,以便结束开放式问题

由于请求不包含访问令牌,导致访问被拒绝。请参阅文档中标题为“创建客户端和用法”的部分


解决了这个问题。问题是,我没有将访问令牌作为参数发送到请求中,而是将其设置在标题处。也许您可以回答自己的问题,以帮助其他人试验相同的问题。@user1976651您可以与我们共享请求中将访问令牌传递到的代码吗?这段代码是javascript吗?