verfaa
Профессор
- Регистрация
 - 29 Янв 2007
 
- Сообщения
 - 418
 
- Реакции
 - 49
 
- Автор темы
 - #1
 
Есть сайт на symfony 6.3. Когда разрабатывал его локально на localhost в docker проблемы вроде небыло. Но вот как только перенёс на купленный домен на сервер появилась проблема. Тут нужно сказать, что доменная зона моего домена .in.net, т.е. домен имеет вид:
	
	
	
		
На сайте имеется вход только через соц. сети. И вот сам вход на сайт работает отлично - я получаю от соц. сети данные, пишу в базу и логиню юзера. А вот выход не получается никак - мучаюсь уже второй день. Вот мои конфиги: security.yaml
	
	
	
		
Здесь нужно отметить, что при переходе на роут app_logout (указанный в path
 происходит редирект на роут team (указанный в target
, но разлогина не происходит. Юзер так и остаётся залогиненным. Но вот путь /logout symfony перехватывает как и должно быть.
Ещё во framework.yaml пробовал добавлять: cookie_domain: domain.in.net но проблему это не решило
	
	
	
		
Ещё заметил, что если очистить кэш браузера, то можно зайти и затем выйти из аккаунта корректно. Но вот если после этого зайти повторно выйти уже не получается.
При переходе на /logout сессия так и остаётся висеть в cookie, хотя перенаправляет на роут указанный в target: team
Это что баг в symfony? Перерыл весь интернет, такой проблемы больше не встречал.
	
		
			
		
		
	
				
			
		Код:
	
	domain.in.net
	
		Код:
	
	security:
    # https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
    password_hashers:
        Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
    # https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider
    providers:
        fetcher:
            id: App\Security\UserProvider
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            lazy: true
            provider: fetcher
            user_checker: App\Security\UserChecker
            custom_authenticator:
                - App\Security\OAuth\GithubAuthenticator
                - App\Security\OAuth\FacebookAuthenticator
                - App\Security\OAuth\GoogleAuthenticator
                - App\Security\OAuth\InstagramAuthenticator
                - App\Security\OAuth\LinkedinAuthenticator
                - App\Security\OAuth\MicrosoftAuthenticator
                - App\Security\OAuth\YahooAuthenticator
            # entry_point: App\Security\OAuth\GithubAuthenticator
            logout:
                path: app_logout
                target: team
            # activate different ways to authenticate
            # https://symfony.com/doc/current/security.html#the-firewall
            # https://symfony.com/doc/current/security/impersonating_user.html
            # switch_user: true
    role_hierarchy:
        ROLE_ADMIN:
            - ROLE_USER
    # Easy way to control access for large sections of your site
    # Note: Only the *first* access control that matches will be used
    access_control:
        - { path: ^/dashboard/adminka, roles: ROLE_ADMIN }
        - { path: ^/dashboard, roles: ROLE_USER }
when@test:
    security:
        password_hashers:
            Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface:
                algorithm: auto
                cost: 4 # Lowest possible value for bcrypt
                time_cost: 3 # Lowest possible value for argon
                memory_cost: 10 # Lowest possible value for argon
	Здесь нужно отметить, что при переходе на роут app_logout (указанный в path
 происходит редирект на роут team (указанный в target
, но разлогина не происходит. Юзер так и остаётся залогиненным. Но вот путь /logout symfony перехватывает как и должно быть.Ещё во framework.yaml пробовал добавлять: cookie_domain: domain.in.net но проблему это не решило
		Код:
	
	framework:
    secret: '%env(APP_SECRET)%'
    #csrf_protection: true
    http_method_override: false
    handle_all_throwables: true
    # Enables session support. Note that the session will ONLY be started if you read or write from it.
    # Remove or comment this section to explicitly disable session support.
    session:
        handler_id: null
        cookie_secure: auto
        cookie_samesite: lax
        cookie_domain: domain.in.net # Here specify my domain name
        storage_factory_id: session.storage.factory.native
    #esi: true
    #fragments: true
    php_errors:
        log: true
when@test:
    framework:
        test: true
        session:
            storage_factory_id: session.storage.factory.mock_file
	Ещё заметил, что если очистить кэш браузера, то можно зайти и затем выйти из аккаунта корректно. Но вот если после этого зайти повторно выйти уже не получается.
При переходе на /logout сессия так и остаётся висеть в cookie, хотя перенаправляет на роут указанный в target: team
Это что баг в symfony? Перерыл весь интернет, такой проблемы больше не встречал.
			
				Последнее редактирование: