2016-03-25 16 views
1

Ich habe ein Problem für die Benutzer in der Produktionfosuserbundle nicht loggin int PRO Modus

Protokollierung ich meine secutiry.yml-Datei wie folgt:

security: 
encoders: 
FOS\UserBundle\Model\UserInterface: bcrypt 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: ROLE_ADMIN 

providers: 
    fos_userbundle: 
     id: fos_user.user_provider.username_email 

firewalls: 
main: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
      csrf_token_generator: security.csrf.token_manager 
      # if you are using Symfony < 2.8, use the following config instead:                                        
      # csrf_provider: form.csrf_provider                                                

     logout:  true 
     anonymous: true 

access_control: 
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/js, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/css, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
- { path: ^/, role: ROLE_ADMIN } 

und ein Teil meiner config.yml:

# Doctrine Configuration                                                      
doctrine: 
dbal: 
    driver: pdo_mysql 
host:  mysql-paradasym85.alwaysdata.net 
port:  3306 
dbname: paradasym85_symfony 
user:  user 
password: pass123456 (fake) 
charset: UTF8 
# if using pdo_sqlite as your database driver:                                               
# 1. add the path in parameters.yml                                                 
#  e.g. database_path: "%kernel.root_dir%/data/data.db3"                                            
# 2. Uncomment database_path in parameters.yml.dist                                             
    # 3. Uncomment next line:                                                    
    #  path:  "%database_path%"                                                  

orm: 
    auto_generate_proxy_classes: "%kernel.debug%" 
    naming_strategy: doctrine.orm.naming_strategy.underscore 
    auto_mapping: true 

alles richtig in Entwicklung funktioniert, aber nicht im Produktionsmodus

Es scheint, als ob/login_check funktioniert nicht.

eine Begrüßung.

+0

i Version PHP überprüfen und Server und Entwickler haben sie die gleiche Version –

+0

bitte den Einzug Ihres Codes beheben. Was bedeutet, dass es nicht "im Produktionsmodus" funktioniert ... 'app/console server: run --env = dev' funktioniert aber' app/console server: run --env = prod' nicht? Haben Sie den Cache 'app/console cache gelöscht: clear --env = prod'? – nifr

+0

danke Nifr, wenn in der Produktion einsetzen :. on-deploy: - symfony2/Assets-install: {env: prod} - Symfony2/Asset-Dump: {env: prod} - symfony2/cache-clear: {env: prod} –

Antwort

0

Ich vermute, Sie importiert FOSUserBundle Routing in routing_dev.yml anstelle von routing.yml.

# app/config/routing.yml 
fos_user: 
    resource: "@FOSUserBundle/Resources/config/routing/all.xml" 

Löschen Sie den Produktionscache nach jeder Änderung des Routings!

app/console cache:clear --env="prod" 

können Sie überprüfen, ob die Route mit in prod Umgebung korrekt registriert ist:

app/console router:debug --env="prod" 

Andernfalls müssen Sie nicht die URL für die Formular-Aktion korrekt erzeugen. Dies sollte in der Vorlage sein:

<form action="{{ path("fos_user_security_check") }}">