HWIOAuth Symfony 4: определение службы должно быть массивом или строкой, начинающейся с «@», но для службы найдена строка - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь интегрировать FOS с HWIO в Symfony 4. К сожалению, я столкнулся с ошибкой, как показано ниже:

In FileLoader.php line 168:

  A service definition must be an array or a string starting with "@" but string found for service "class" in D:\web-projects\pcrmanagement\config/services.yaml. Check your YAML syntax in D:\web-projects\pcrmanagement\config/services.yaml (which is loaded in resource "D:\web-projects\pcrmanagement\config/services.yaml").


In YamlFileLoader.php line 336:

  A service definition must be an array or a string starting with "@" but string found for service "class" in D:\web-projects\pcrmanagement\config/services.yaml. Check your YAML syntax.

Вот мой код ниже, я пойду и отправлю толькочто вам нужно увидеть, если вам нужно больше кода для обзора, я могу поставить больше.

#config/hwi_oauth.yaml
hwi_oauth:
    firewall_names: [main]

    fosub:
        username_iterations: 30
        properties:
            googleplus: username

    resource_owners:
        google:
            type:                google
            client_id:           secret
            client_secret:       secret
            scope:               "email profile"
            options:
                csrf: true
# security.yaml
providers:
    in_memory: { memory: ~ }
    fos_userbundle:
        id: fos_user.user_provider.username
firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_token_generator: security.csrf.token_manager

        oauth:
            resource_owners:
                facebook:           "/login/check-facebook"
                google:             "/login/check-google"
                my_custom_provider: "/login/check-custom"
                my_github:          "/login/check-github"
            login_path:        /login
            use_forward:       false
            failure_path:      /login

            oauth_user_provider:
                service: my.oauth_aware.user_provider.service

        logout:    true
        anonymous: true

#services.yaml
my.oauth_aware.user_provider.service:
class: HWI\Bundle\OAuthBundle\Security\Core\User\FOSUBUserProvider
arguments: ['@fos_user.user_manager',{google: username}]

Я думаю, что есть проблема с тем, как он читает аргументы в services.yaml

1 Ответ

0 голосов
/ 22 марта 2019

Создайте свой собственный user_provider и продлите HWI\Bundle\OAuthBundle\Security\Core\User\FOSUBUserProvider.

Затем настройте своего собственного провайдера:

services:
    App\Security\Core\User\MyFOSUBUserProvider:
        arguments: ['@fos_user.user_manager', { facebook: facebook_id }]

Затем измените:

oauth_user_provider:
   service: MyBundle\Security\Core\User\MyFOSUBUserProvider
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...