【问题标题】:HWIOAuthBundle `An authentication exception occurred`HWIOAuthBundle`发生身份验证异常`
【发布时间】:2019-04-26 16:18:52
【问题描述】:

我对@9​​87654323@ 有疑问(FOSUserBundle 集成。)

点击链接/connect/google,出现此画面。 (屏幕模糊,因为是客户的邮箱)

然后返回回调地址/login/check-google

它重定向到/login 并显示此消息

An authentication exception occurred.

如果我直接输入/login/check-google,什么都不会发生,只是重定向到login

我不知道/login/check-google 页面上发生了什么。

我该如何检查??? (我在这个问题上卡了一个星期,我刷新并更新了文章。)

我的环境是

  • Symfony 2.8.14
  • HWIOAuthBundle 0.6.0
  • FOSUserBundle 2.0.1

security.yml

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 }

config.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"

服务.xml

    <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>

routing.yml

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"

【问题讨论】:

    标签: php symfony oauth hwioauthbundle


    【解决方案1】:

    我解决了我的问题。

    降级 >>> HWIAuthBundle 0.4.3

    并将其添加到 config.yml

    hwi_oauth:
        http_client:
            verify_peer: false
    

    这是因为 https / http 的不同。 谷歌请求 https。 但是它会跳过 https 验证。

    还要检查最后一条评论。

    https://github.com/hwi/HWIOAuthBundle/issues/1024

    【讨论】:

      【解决方案2】:

      我不知道hwi/oauth-bundle 自上次回答以来是否发生了变化,但现在无需降级软件包。

      事实上,http_client 选项已在 0.6.x 版本中被移除,因为内部 Http 客户端已被 HttplugBundle 取代。

      现在在官方文档中描述了禁用“verify_peer”选项的正确方法:https://github.com/hwi/HWIOAuthBundle/blob/master/Resources/doc/internals/configuring_the_http_client.md

      【讨论】:

      • 请在此处添加链接中的相关部分。
      猜你喜欢
      • 1970-01-01
      • 2018-12-10
      • 2012-01-07
      • 2020-01-01
      • 1970-01-01
      • 2021-01-10
      • 2017-07-02
      • 1970-01-01
      • 2013-07-05
      相关资源
      最近更新 更多