Я настроил HWIOAuthBundle, чтобы сделать возможным вход в систему через Google на моем веб-сайте (см. Конфиги ниже). Как правильно изменить аккаунт Google? Проблема заключается в том, что в первый раз, когда я пытался войти в систему с помощью Google, он позволяет мне выбрать учетную запись Google, но затем Google запоминает мой выбор и теперь по умолчанию всегда регистрирует меня с первым выбранным аккаунтом. Например, в https://www.flaticon.com/profile/me вы видите кнопку «Отключить Google» с этим необходимым функционалом - открывается окно с выбором аккаунтов Google
Я искал в https://github.com/hwi/HWIOAuthBundle/blob/master/Resources/doc/index.md документах, но нет решения
# composer.json
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
"friendsofsymfony/ckeditor-bundle": "^2.1",
"friendsofsymfony/user-bundle": "^2.1",
"hwi/oauth-bundle": "^0.6.3",
"php-http/guzzle6-adapter": "^1.1",
"php-http/httplug-bundle": "^1.16",
"sensio/framework-extra-bundle": "^5.3",
"symfony/apache-pack": "^1.0",
"symfony/asset": "4.2.*",
"symfony/console": "4.2.*",
"symfony/dotenv": "4.2.*",
"symfony/flex": "^1.1",
"symfony/form": "4.2.*",
"symfony/framework-bundle": "4.2.*",
"symfony/monolog-bundle": "^3.3",
"symfony/orm-pack": "^1.0",
"symfony/security-bundle": "4.2.*",
"symfony/swiftmailer-bundle": "^3.2",
"symfony/translation": "4.2.*",
"symfony/twig-bundle": "4.2.*",
"symfony/validator": "4.2.*",
"symfony/webpack-encore-bundle": "^1.5",
"symfony/yaml": "4.2.*"
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/"
},
"classmap": [
"config/bundles.php"
]
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"replace": {
"paragonie/random_compat": "2.*",
"symfony/polyfill-ctype": "*",
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php71": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"allow-contrib": "true",
"require": "4.2.*"
}
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.1",
"symfony/browser-kit": "4.2.*",
"symfony/css-selector": "4.2.*",
"symfony/maker-bundle": "^1.11",
"symfony/phpunit-bridge": "4.2.*",
"symfony/profiler-pack": "^1.0",
"symfony/web-server-bundle": "4.2.*"
}
}
# config/packages/hwi_oauth.yaml
hwi_oauth:
http:
client: httplug.client.hwi_special
connect:
account_connector: my_user_provider
firewall_name: main
fosub:
username_iterations: 30
properties:
google: google_id
resource_owners:
google:
type: google
client_id: '%env(GOOGLE_ID)%'
client_secret: '%env(GOOGLE_SECRET)%'
scope: "email profile"
options:
display: popup
csrf: true
access_type: offline
# config/packages/security.yaml
security:
encoders:
App\Entity\User:
algorithm: bcrypt
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
anonymous: true
logout: true
guard:
authenticators:
- App\Security\LoginFormAuthenticator
remember_me:
secret: '%kernel.secret%'
lifetime: 2592000 # 30 days
path: /
oauth:
resource_owners:
google: "/login/check-google"
login_path: fos_user_security_login
failure_path: fos_user_security_login
oauth_user_provider:
service: my_user_provider
- { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY}
- { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_SUPER_ADMIN }
- { path: ^/profile, roles: ROLE_USER }
# config/routes.yaml
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
google_login:
path: /login/check-google