我有两个登录表单。
用户一个:
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 对象,但之后它仍然重定向到登录)。
如果我在doctrine_mongodb.yaml中将auto_generate_proxy_classes设置为true,登录也可以在生产环境中使用:
doctrine_mongodb: ... 当@产品: 学说_mongodb: 自动生成代理类:true