HWIOAuthBundle`发生了身份验证异常

问题描述 投票:2回答:2

我有HWIOAuthBundleFOSUserBundle集成。)的问题。

单击链接qazxsw poi,此屏幕出现。 qazxsw poi(屏幕模糊,因为它是客户的电子邮件)

然后回到回调网址/connect/google

它重定向到enter image description here并显示此消息

/login/check-google

如果我直接键入/login,没有任何反应,只是重定向到An authentication exception occurred.

我不知道在/login/check-google页面上有什么。

我怎么检查??? (我在这个问题上坚持了一个星期,我刷新并更新了文章。)

我的环境是

  • Symfony 2.8.14
  • HWIOAuthBundle 0.6.0
  • FOSUserBundle 2.0.1

security.yml

login

config.yml

/login/check-google

servitse.hml

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

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username_email

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_token_generator: security.csrf.token_manager
                # if you are using Symfony < 2.8, use the following config instead:
                # csrf_provider: form.csrf_provider

            logout:       true
            anonymous:    true
            oauth:
                resource_owners:
                    google:             "/login/check-google"
                login_path:        /login
                use_forward:       false
                failure_path:      /login
                oauth_user_provider:
                    service: my_user_provider
        login:
            pattern:  ^/login$
            security: false

    access_control:
         - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }

使用routing.yml

hwi_oauth:
    connect:
        account_connector: my_user_provider
    firewall_names: [main]
    fosub:
        username_iterations: 30
        properties:
            google: google_id
    resource_owners:
        google:
            type:                google
            client_id:           XXXXXXXX
            client_secret:       XXXXXXXXXX
            scope:               "email profile"
php symfony oauth hwioauthbundle
2个回答
0
投票

我解决了我的问题。

降级>>> HWIAuthBundle 0.4.3

并在config.yml中添加此项

    <parameters>
     <parameter key="my_user_provider.class">Acme\UserBundle\Security\Core\User\FOSUBUserProvider</parameter>
    </parameters>
    <services>
          <service id="my_user_provider" class="%my_user_provider.class%">
            <argument type="service" id="fos_user.user_manager"/>
            <argument type="service" id="service_container" />

            <argument type="collection">
                <argument key="google">google_id</argument>       
            </argument>   
        </service>
    </services>

这是因为https / http的区别。 Google请求https。但是它会跳过https验证。

检查最后的评论。

admin_area: resource: "@SonataAdminBundle/Resources/config/routing/sonata_admin.xml" prefix: /admin _sonata_admin: resource: . type: sonata_admin prefix: /admin acme_member: resource: "@AcmeMemberBundle/Resources/config/routing.yml" prefix: /member _user_bundle: resource: "@UserBundle/Resources/config/routing.yml" acme_top: resource: "@AcmeTopBundle/Resources/config/routing.yml" prefix: / fos_user_group: resource: "@FOSUserBundle/Resources/config/routing/group.xml" prefix: /group sonata_page_cache: resource: '@SonataCacheBundle/Resources/config/routing/cache.xml' prefix: / #HWIOAuthBundle routes hwi_oauth_security: resource: "@HWIOAuthBundle/Resources/config/routing/login.xml" prefix: /login hwi_oauth_connect: resource: "@HWIOAuthBundle/Resources/config/routing/connect.xml" prefix: /connect hwi_oauth_redirect: resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml" prefix: /connect facebook_login: path: /login/check-facebook google_login: path: /login/check-google fos_js_routing: resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"


0
投票

我不知道hwi_oauth: http_client: verify_peer: false 自上次回答以来是否有变化,但现在没有必要降级包。

事实上,https://github.com/hwi/HWIOAuthBundle/issues/1024选项已在0.6.x版本中删除,因为内部Http客户端已被HttplugBundle取代。

现在官方文档中描述了禁用'verify_peer'选项的正确方法:hwi/oauth-bundle

© www.soinside.com 2019 - 2024. All rights reserved.