/ / Symfony 3.4.6 - "Token" XXXXXX "wurde nicht in der Datenbank gefunden." - php, csrf, fosuserbundle, symfony3.4

Symfony 3.4.6 - "Token" XXXXXX "wurde nicht in der Datenbank gefunden."

Ich versuche, eine Symfony-Web-App zu testen und zu debuggen app_dev.php Front-Controller / Umgebung, die Web-Debug-Symbolleiste wird nicht geladen, und wenn ich auf "Web-Profiler öffnen" klicke, wird die folgende Fehlermeldung angezeigt:

Token "XXXXX" wurde nicht in der Datenbank gefunden

* Hinweis: Es handelt sich nicht um den Literalwert von XXXXX, sondern darum, dass sich das gesuchte Token jedes Mal ändert, wenn ich versuche, den Profiler zu öffnen.

Ich kann mich auch nicht im Administrationsbereich der Site anmelden, wahrscheinlich aufgrund dieses Token-Fehlers.

Ich denke, es kann ein Problem sein, wie meine security.yml ist eingerichtet, aber mir springt nichts heraus. Hier ist es:

security:
encoders:
FOSUserBundleModelUserInterface: bcrypt

role_hierarchy:
ROLE_ADMIN:       ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

# https://symfony.com/doc/current/security.html#b-configuring-how-users-are-loaded
providers:
fos_userbundle:
id: fos_user.user_provider.username
in_memory:
memory: ~

firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false

main:
pattern:
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager

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: ^/admin/, role: ROLE_ADMIN }

Das zugehörige Snippet in config.yml:

fos_user:
db_driver: orm
firewall_name: main
user_class: AppBundleEntityUser
from_email:
address: noreply@someplace.com
sender_name: "someplace"

Und der Vollständigkeit halber der Teil, der auf die Symbolleiste in verweist config_dev.yml:

framework:
router:
resource: "%kernel.project_dir%/app/config/routing_dev.yml"
strict_requirements: true
profiler: { only_exceptions: false }

web_profiler:
toolbar: true
intercept_redirects: false

Angesichts der Tatsache, dass FOSUserBundle mein Benutzerprovider ist, habe ich auch ausgeführt bin/console doctrine:schema:update --force, aber das Problem bleibt bestehen.

Antworten:

0 für die Antwort № 1

Herausgefunden. Es war eine Kombination aus einem unvollständig installierten Dienst mit einem Eintrag in services.yml, noch fehlende Dateien und die falschen Berechtigungen / Besitz für meine /var Verzeichnis. Ich habe einen separaten Linux-Benutzer für alle meine Apps, der emuliert, was sich auf dem Produktionsserver befindet (jede Site erhält einen eigenen PHP-FPM-Pool und keine verfügt über Root- oder Sudo-Berechtigungen).

Kommentieren Sie daher den unvollständigen Dienst in services.yml und läuft $ sudo chown -R siteuser:siteuser /path/to/this/site/project Hat den Trick gemacht.