Facebook HWIOAuthBundle:没有名为';检查google';
我安装了硬件包 但当我尝试使用Google帐户登录时,出现以下错误: 没有名为“检查谷歌”的资源所有者 我和其他API(Facebook,twitter…)有同样的错误 这是我的安全。yml:Facebook HWIOAuthBundle:没有名为';检查google';,facebook,symfony,google-api,hwioauthbundle,Facebook,Symfony,Google Api,Hwioauthbundle,我安装了硬件包 但当我尝试使用Google帐户登录时,出现以下错误: 没有名为“检查谷歌”的资源所有者 我和其他API(Facebook,twitter…)有同样的错误 这是我的安全。yml: firewalls: main: pattern: ^/login$ security: true anonymous: true provider: user_provider form_login:
firewalls:
main:
pattern: ^/login$
security: true
anonymous: true
provider: user_provider
form_login:
login_path: fos_user_security_login
check_path: fos_user_security_check
logout:
path: fos_user_security_logout
target: /
oauth:
resource_owners:
facebook: "/login/check-facebook"
google: "/login/check-google"
twitter: "/login/check-twitter"
linkedin: "/login/check-linkedin"
login_path: /login
check_path: /login
failure_path: /login
oauth_user_provider:
#this is my custom user provider, created from FOSUBUserProvider - will manage the
#automatic user registration on your site, with data from the provider (facebook. google, etc.)
service: my_user_provider
My routing.yml:
#HWIOAuthBundle routes
hwi_oauth_security:
resource: "@HWIOAuthBundle/Resources/config/routing/login.xml"
prefix: /connect/by
hwi_oauth_connect:
resource: "@HWIOAuthBundle/Resources/config/routing/connect.xml"
prefix: /connect/by
hwi_oauth_redirect:
resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml"
prefix: /login
facebook_login:
pattern: /login/check-facebook
options: { i18n: false }
google_login:
pattern: /login/check-google
options: { i18n: false }
twitter_login:
pattern: /login/check-twitter
linkedin_login:
pattern: /login/check-linkedin
和my config.yml:
# HWIOAuthBundle
hwi_oauth:
connect:
account_connector: my_user_provider
firewall_name: main
fosub:
username_iterations: 30
properties:
# these properties will be used/redefined later in the custom FOSUBUserProvider service.
facebook: facebook_id
google: google_id
twitter: twitter_id
linkedin: linkedin_id
resource_owners:
facebook:
type: facebook
client_id: xxxxx
client_secret: xxxxx
scope: ""
options:
display: popup
google:
type: google
client_id: xxxx
client_secret: xxxx
scope: "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"
twitter:
type: twitter
client_id: xxxx
client_secret: xxxx
scope: ""
linkedin:
type: linkedin
client_id: xxxx
client_secret: xxxx
scope: "r_basicprofile"
services:
hwi_oauth.user.provider.entity:
class: HWI\Bundle\OAuthBundle\Security\Core\User\OAuthUserProvider
cmf_create.persistence.orm.object_mapper:
class: Midgard\CreatePHP\Mapper\DoctrineOrmMapper
arguments:
- "%cmf_create.map%"
- "@doctrine"
我的问题和你的一样。如何修复此问题?我的最佳选择是,您的防火墙在“使用*”URL登录时未处于活动状态 尝试更改:
pattern: ^/login$
我个人使用防火墙访问所有URL:
pattern: ^/
并显式设置公共URL:
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { path: ^/add, role: ROLE_USER }
我也遇到了同样的问题:
No ressource owner with name 'check-google'.
对我来说,通过将routing.yml更改为以下内容解决了此问题:
google_login:
pattern: /api/login/check/google
我解决了这个问题。我发现这个链接很有用: 在上面的链接中,在我将cacert.pem添加到路径后,它解决了这个问题 HWIOAuthBundle使用Buzz curl客户端与web服务通信。Buzz默认启用SSL证书检查。在某些服务器上,CA证书信息可能不存在。要添加CA证书信息,请从此页面下载cacert.pem,并将curl.cainfo php ini变量设置为cacert.pem的位置,例如 curl.cainfo=/path/to/cacert.pem 我错过了上面的步骤 问候,
Mk6ix哪个URL引发异常?你能从你的stacktrace中再发一点吗?