symfony 6 登录无法在生产环境中运行

问题描述 投票:0回答:1

我有两个登录表单。

用户一个:

https://www.********/登录

此登录适用于开发,但不适用于生产。在生产中,它只是重定向到登录页面,不显示任何错误消息。

我还有一个管理员用户的登录页面:

https://www.********/admin/login

这适用于开发和生产。

我的 security.yaml:

安全: 启用验证器管理器:true

providers:
    users:
        mongodb:
            class: 'App\Document\User\User'
            property: 'username'
            
password_hashers:
    App\Document\User\User:
        algorithm: auto
        
erase_credentials: false

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
        
    admin:
        pattern:    ^/admin         
        logout:
            path: public_logout_admin        
        form_login:
            login_path: public_login_admin
            check_path: public_login_admin
            default_target_path: admin_prepaid_order_list
        switch_user: { role: ROLE_ADMIN }
        access_denied_handler: App\Security\AccessDeniedHandler
        user_checker: App\Security\UserChecker
        
    main:
        pattern:    ^/    
        logout:
            path: public_logout                         
        form_login:
            login_path: public_login
            check_path: public_login
            default_target_path: business_browse_top_categories                
        switch_user: { role: ROLE_ADMIN }
        access_denied_handler: App\Security\AccessDeniedHandler
        user_checker: App\Security\UserChecker 

access_control:
    - { path: '^/login', roles: PUBLIC_ACCESS }
    - { path: '^/signup', roles: PUBLIC_ACCESS }
    - { path: '^/password-reset', roles: PUBLIC_ACCESS }
    - { path: '^/business', roles: ROLE_BUSINESS }
    
    - { path: '/admin/login', roles: PUBLIC_ACCESS }
    - { path: '/admin/logout', roles: PUBLIC_ACCESS }
    - { path: '^/admin', roles: ROLE_ADMIN }
    
role_hierarchy:        
    ROLE_BUSINESS_TERMS_ACCEPTED: ROLE_BUSINESS        
    ROLE_BUSINESS_ACCEPTED: ROLE_BUSINESS_TERMS_ACCEPTED        
    ROLE_ADMIN: [ROLE_BUSINESS_ACCEPTED, ROLE_ALLOWED_TO_SWITCH]    

出了什么问题?

安德拉斯

尝试过这些:在开发和生产之间切换,删除和添加部分开发和生产配置,检查 Symfony 代码(onAuthenticationSuccess 返回正确的 RedirectResponse 对象,但之后它仍然重定向到登录)。

authentication symfony security production-environment
1个回答
0
投票

如果我在doctrine_mongodb.yaml中将auto_generate_proxy_classes设置为true,登录也可以在生产环境中使用:

doctrine_mongodb: ... 当@产品: 学说_mongodb: 自动生成代理类:true

© www.soinside.com 2019 - 2024. All rights reserved.