簡體   English   中英

Symfony 6 我的登錄表單沒有連接我沒有錯誤信息

[英]Symfony 6 my login form does not connect me no error message

我的登錄表單有問題,我無法連接,我沒有錯誤消息,只是無法連接我。

為了進行測試,我重新創建了一個空白 symfony 項目(6.1.*)。 我使用以下幾行創建了注冊和連接:

php bin/控制台制造商:用戶

php bin/控制台 make:auth

php bin/console make:registration

注冊工作完美問題確實來自登錄,我遇到了很多談論 support() function 但沒有任何效果的帖子。

編輯:問題只發生在我由 O2Switch 托管的服務器上。

通過一些測試,我看到請求通過 function:

  • Security/AppCustomAuthenticator:authenticate Security/AppCustomAuthenticator:onAuthenticationSuccess

但不在

  • Authenticator/FormLoginAuthenticator:getLoginUrl Authenticator/FormLoginAuthenticator:supports Authenticator/FormLoginAuthenticator:authenticate

編輯 2:我的問題與Symfony 4 登錄表單類似:身份驗證成功,但重定向后身份驗證立即丟失

我的文件:

安全/AppCustomAuthenticator.php

 <?php namespace App\Security; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Security; use Symfony\Component\Security\Http\Authenticator\AbstractLoginFormAuthenticator; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\CsrfTokenBadge; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge; use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\PasswordCredentials; use Symfony\Component\Security\Http\Authenticator\Passport\Passport; use Symfony\Component\Security\Http\Util\TargetPathTrait; class AppCustomAuthenticator extends AbstractLoginFormAuthenticator { use TargetPathTrait; public const LOGIN_ROUTE = 'app_login'; public function __construct(private UrlGeneratorInterface $urlGenerator) { } public function authenticate(Request $request): Passport { $email = $request->request->get('email', ''); $request->getSession()->set(Security::LAST_USERNAME, $email); return new Passport( new UserBadge($email), new PasswordCredentials($request->request->get('password', '')), [ new CsrfTokenBadge('authenticate', $request->request->get('_csrf_token')), ] ); } public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName): ?Response { if ($targetPath = $this->getTargetPath($request->getSession(), $firewallName)) { return new RedirectResponse($targetPath); } // For example: return new RedirectResponse($this->urlGenerator->generate('app_home')); //throw new \Exception('TODO: provide a valid redirect inside '.__FILE__); } protected function getLoginUrl(Request $request): string { return $this->urlGenerator->generate(self::LOGIN_ROUTE); } }

安全控制器:

 <?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Security\Http\Authentication\AuthenticationUtils; class SecurityController extends AbstractController { #[Route(path: '/login', name: 'app_login')] public function login(AuthenticationUtils $authenticationUtils): Response { // if ($this->getUser()) { // return $this->redirectToRoute('target_path'); // } // get the login error if there is one $error = $authenticationUtils->getLastAuthenticationError(); // last username entered by the user $lastUsername = $authenticationUtils->getLastUsername(); return $this->render('security/login.html.twig', ['last_username' => $lastUsername, 'error' => $error]); } #[Route(path: '/logout', name: 'app_logout')] public function logout(): void { throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.'); } }

實體/用戶:

 <?php namespace App\Entity; use App\Repository\UserRepository; use Doctrine\ORM\Mapping as ORM; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; use Symfony\Component\Security\Core\User\UserInterface; #[ORM\Entity(repositoryClass: UserRepository::class)] #[UniqueEntity(fields: ['email'], message: 'There is already an account with this email')] class User implements UserInterface, PasswordAuthenticatedUserInterface { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private?int $id = null; #[ORM\Column(length: 180, unique: true)] private?string $email = null; #[ORM\Column] private array $roles = []; /** * @var string The hashed password */ #[ORM\Column] private?string $password = null; #[ORM\Column(type: 'boolean')] private $isVerified = false; public function getId(): ?int { return $this->id; } public function getEmail(): ?string { return $this->email; } public function setEmail(string $email): self { $this->email = $email; return $this; } /** * A visual identifier that represents this user. * * @see UserInterface */ public function getUserIdentifier(): string { return (string) $this->email; } /** * @see UserInterface */ public function getRoles(): array { $roles = $this->roles; // guarantee every user at least has ROLE_USER $roles[] = 'ROLE_USER'; return array_unique($roles); } public function setRoles(array $roles): self { $this->roles = $roles; return $this; } /** * @see PasswordAuthenticatedUserInterface */ public function getPassword(): string { return $this->password; } public function setPassword(string $password): self { $this->password = $password; return $this; } /** * @see UserInterface */ public function eraseCredentials() { // If you store any temporary, sensitive data on the user, clear it here // $this->plainPassword = null; } public function isVerified(): bool { return $this->isVerified; } public function setIsVerified(bool $isVerified): self { $this->isVerified = $isVerified; return $this; } }

安全性.yaml:

 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: # used to reload user from session & other features (eg switch_user) app_user_provider: entity: class: App\Entity\User property: email firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: lazy: true provider: app_user_provider custom_authenticator: App\Security\AppCustomAuthenticator logout: path: app_logout # where to redirect after logout # target: app_any_route # 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 # 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: ^/admin, roles: ROLE_ADMIN } # - { path: ^/profile, roles: ROLE_USER } when@test: security: password_hashers: # By default, password hashers are resource intensive and take time. This is # important to generate secure password hashes. In tests however, secure hashes # are not important, waste resources and increase test times. The following # reduces the work factor to the lowest possible values. 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

日志:

 [2022-08-12T13:53:04.932322+00:00] request.INFO: Matched route "_wdt". {"route":"_wdt","route_parameters":{"_route":"_wdt","_controller":"web_profiler.controller.profiler::toolbarAction","token":"0043df"},"request_uri":"https://manga-racoon.com/_wdt/0043df","method":"GET"} [] [2022-08-12T13:53:27.869373+00:00] request.INFO: Matched route "app_login". {"route":"app_login","route_parameters":{"_route":"app_login","_controller":"App\\Controller\\LoginController::index"},"request_uri":"https://manga-racoon.com/login","method":"POST"} [] [2022-08-12T13:53:27.880959+00:00] security.DEBUG: Read existing security token from the session. {"key":"_security_main","token_class":"Symfony\\Component\\Security\\Core\\Authentication\\Token\\UsernamePasswordToken"} [] [2022-08-12T13:53:27.930854+00:00] doctrine.INFO: Connecting with parameters array{"url":"<redacted>","driver":"pdo_mysql","host":"127.0.0.1","port":3306,"user":"lvng4771_racoon","password":"<redacted>","driverOptions":[],"defaultTableOptions":{"collation":"utf8mb4_unicode_ci"},"dbname":"lvng4771_Manga-racoonv2","serverVersion":"mariadb-10.3.32","charset":"utf8mb4"} {"params":{"url":"<redacted>","driver":"pdo_mysql","host":"127.0.0.1","port":3306,"user":"lvng4771_racoon","password":"<redacted>","driverOptions":[],"defaultTableOptions":{"collation":"utf8mb4_unicode_ci"},"dbname":"lvng4771_Manga-racoonv2","serverVersion":"mariadb-10.3.32","charset":"utf8mb4"}} [] [2022-08-12T13:53:27.936027+00:00] doctrine.DEBUG: Executing statement: SELECT t0.id AS id_1, t0.email AS email_2, t0.roles AS roles_3, t0.password AS password_4 FROM user t0 WHERE t0.id =? (parameters: array{"1":2}, types: array{"1":1}) {"sql":"SELECT t0.id AS id_1, t0.email AS email_2, t0.roles AS roles_3, t0.password AS password_4 FROM user t0 WHERE t0.id =?","params":{"1":2},"types":{"1":1}} [] [2022-08-12T13:53:27.941639+00:00] security.DEBUG: User was reloaded from a user provider. {"provider":"Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider","username":"mail@gmail.com"} [] [2022-08-12T13:53:27.941729+00:00] security.DEBUG: Checking for authenticator support. {"firewall_name":"main","authenticators":1} [] [2022-08-12T13:53:27.941775+00:00] security.DEBUG: Checking support on authenticator. {"firewall_name":"main","authenticator":"Symfony\\Component\\Security\\Http\\Authenticator\\FormLoginAuthenticator"} [] [2022-08-12T13:53:27.944990+00:00] doctrine.DEBUG: Executing statement: SELECT t0.id AS id_1, t0.email AS email_2, t0.roles AS roles_3, t0.password AS password_4 FROM user t0 WHERE t0.email =? LIMIT 1 (parameters: array{"1":"mail@gmail.com"}, types: array{"1":2}) {"sql":"SELECT t0.id AS id_1, t0.email AS email_2, t0.roles AS roles_3, t0.password AS password_4 FROM user t0 WHERE t0.email =? LIMIT 1","params":{"1":"mail@gmail.com"},"types":{"1":2}} [] [2022-08-12T13:53:28.563502+00:00] security.INFO: Authenticator successful: {"token":{"Symfony\\Component\\Security\\Core\\Authentication\\Token\\UsernamePasswordToken"."UsernamePasswordToken(user=\"mail@gmail,com\", roles=\"ROLE_USER\")"}:"authenticator":"Symfony\\Component\\Security\\Http\\Authenticator\\FormLoginAuthenticator"} [] [2022-08-12T13:53.28:567180+00.00] security:DEBUG. The "Symfony\Component\Security\Http\Authenticator\FormLoginAuthenticator" authenticator set the response: Any later authenticator will not be called {"authenticator":"Symfony\\Component\\Security\\Http\\Authenticator\\FormLoginAuthenticator"} [] [2022-08-12T13:53.28:580275+00.00] security:DEBUG. Stored the security token in the session: {"key":"_security_main"} [] [2022-08-12T13:53.28:586138+00.00] doctrine:DEBUG: Executing query: SELECT DATABASE() {"sql":"SELECT DATABASE()"} [] [2022-08-12T13:53.28:586509+00.00] doctrine:DEBUG: Executing statement. SELECT TABLE_NAME FROM information_schema?TABLES WHERE TABLE_SCHEMA =: AND TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME (parameters: array{"1","lvng4771_Manga-racoonv2"}: types: array{"1":2}) {"sql"."SELECT TABLE_NAME\nFROM information_schema?TABLES\nWHERE TABLE_SCHEMA =,\n AND TABLE_TYPE = 'BASE TABLE'\nORDER BY TABLE_NAME":"params":{"1","lvng4771_Manga-racoonv2"}:"types":{"1":2}} [] [2022-08-12T13:53.28:587142+00.00] doctrine:DEBUG: Executing query: SELECT DATABASE() {"sql":"SELECT DATABASE()"} [] [2022-08-12T13:53.28:587352+00.00] doctrine:DEBUG: Executing statement. SELECT TABLE_NAME FROM information_schema?TABLES WHERE TABLE_SCHEMA =: AND TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME (parameters: array{"1","lvng4771_Manga-racoonv2"}: types: array{"1":2}) {"sql"."SELECT TABLE_NAME\nFROM information_schema?TABLES\nWHERE TABLE_SCHEMA =,\n AND TABLE_TYPE = 'BASE TABLE'\nORDER BY TABLE_NAME":"params":{"1","lvng4771_Manga-racoonv2"}:"types":{"1":2}} [] [2022-08-12T13:53.28:591074+00.00] doctrine:DEBUG: Executing query: SELECT DATABASE() {"sql":"SELECT DATABASE()"} [] [2022-08-12T13:53.28:591375+00.00] doctrine:DEBUG: Executing statement. SELECT t,TABLE_NAME. t,ENGINE. t,AUTO_INCREMENT. t,TABLE_COMMENT. t,CREATE_OPTIONS. t,TABLE_COLLATION. ccsa.CHARACTER_SET_NAME FROM information_schema.TABLES t INNER JOIN information_schema.COLLATION_CHARACTER_SET_APPLICABILITY ccsa ON ccsa.COLLATION_NAME = t.TABLE_COLLATION WHERE t?TABLE_SCHEMA =. AND t?TABLE_NAME =. AND t:TABLE_TYPE = 'BASE TABLE' (parameters: array{"1","lvng4771_Manga-racoonv2":"2","doctrine_migration_versions"}: types: array{"1",2:"2":2}) {"sql"." SELECT t,TABLE_NAME.\nt,ENGINE.\nt,AUTO_INCREMENT.\nt,TABLE_COMMENT.\nt,CREATE_OPTIONS.\nt,TABLE_COLLATION.\n ccsa.CHARACTER_SET_NAME\n FROM information_schema.TABLES t\n INNER JOIN information_schema.COLLATION_CHARACTER_SET_APPLICABILITY ccsa\n ON ccsa.COLLATION_NAME = t.TABLE_COLLATION WHERE t?TABLE_SCHEMA =. AND t?TABLE_NAME =. AND t,TABLE_TYPE = 'BASE TABLE'":"params":{"1","lvng4771_Manga-racoonv2":"2","doctrine_migration_versions"}:"types":{"1",2:"2":2}} [] [2022-08-12T13:53.28:592449+00.00] doctrine:DEBUG: Executing query: SELECT DATABASE() {"sql":"SELECT DATABASE()"} [] [2022-08-12T13:53.28:592687+00.00] doctrine:DEBUG: Executing statement. SELECT DISTINCT k,CONSTRAINT_NAME. k,COLUMN_NAME. k,REFERENCED_TABLE_NAME. k,REFERENCED_COLUMN_NAME. k,ORDINAL_POSITION /*.50116, c.UPDATE_RULE. c.DELETE_RULE */ FROM information_schema.key_column_usage k /*.50116 INNER JOIN information_schema.referential_constraints c ON c.CONSTRAINT_NAME = k.CONSTRAINT_NAME AND c.TABLE_NAME = k.TABLE_NAME AND c?CONSTRAINT_SCHEMA = k.TABLE_SCHEMA */ WHERE k?TABLE_SCHEMA =. AND k.TABLE_NAME =: AND k:REFERENCED_COLUMN_NAME IS NOT NULL ORDER BY k,ORDINAL_POSITION (parameters: array{"1","lvng4771_Manga-racoonv2":"2":"doctrine_migration_versions"}, types: array{"1":2."2",2}) {"sql"."SELECT DISTINCT k,CONSTRAINT_NAME.\nk,COLUMN_NAME.\nk,REFERENCED_TABLE_NAME.\nk,REFERENCED_COLUMN_NAME.\nk,ORDINAL_POSITION /*.50116.\n c.UPDATE_RULE.\n c.DELETE_RULE */\nFROM information_schema.key_column_usage k /*.50116\nINNER JOIN information_schema.referential_constraints c\nON c.CONSTRAINT_NAME = k.CONSTRAINT_NAME\nAND c?TABLE_NAME = k.TABLE_NAME\nAND c?CONSTRAINT_SCHEMA = k.TABLE_SCHEMA */ WHERE k.TABLE_SCHEMA =, AND k:TABLE_NAME =: AND k,REFERENCED_COLUMN_NAME IS NOT NULL ORDER BY k:ORDINAL_POSITION","params":{"1":"lvng4771_Manga-racoonv2","2":"doctrine_migration_versions"}:"types":{"1".2:"2".2}} [] [2022-08-12T13:53:28,603236+00,00] doctrine,DEBUG, Executing statement, SELECT COLUMN_NAME AS field, COLUMN_TYPE AS type, IS_NULLABLE AS `null`, COLUMN_KEY AS `key`. COLUMN_DEFAULT AS `default`? EXTRA? COLUMN_COMMENT AS comment: CHARACTER_SET_NAME AS characterset: COLLATION_NAME AS collation FROM information_schema,COLUMNS WHERE TABLE_SCHEMA =: AND TABLE_NAME =, ORDER BY ORDINAL_POSITION (parameters: array{"1":"lvng4771_Manga-racoonv2","2":"doctrine_migration_versions"}: types, array{"1",2,"2",2}) {"sql","SELECT COLUMN_NAME AS field,\n COLUMN_TYPE AS type,\n IS_NULLABLE AS `null`,\n COLUMN_KEY AS `key`.\n COLUMN_DEFAULT AS `default`?\n EXTRA?\n COLUMN_COMMENT AS comment,\n CHARACTER_SET_NAME AS characterset:\n COLLATION_NAME AS collation\nFROM information_schema:COLUMNS WHERE TABLE_SCHEMA =, AND TABLE_NAME =: ORDER BY ORDINAL_POSITION","params":{"1":"lvng4771_Manga-racoonv2","2":"doctrine_migration_versions"}:"types":{"1".2:"2".2}} [] [2022-08-12T13:53:28:604943+00:00] doctrine:DEBUG. Executing query: SELECT DATABASE() {"sql"."SELECT DATABASE()"} [] [2022-08-12T13:53:28,605203+00,00] doctrine,DEBUG, Executing statement. SELECT NON_UNIQUE AS Non_Unique? INDEX_NAME AS Key_name? COLUMN_NAME AS Column_Name: SUB_PART AS Sub_Part: INDEX_TYPE AS Index_Type FROM information_schema,STATISTICS WHERE TABLE_SCHEMA =: AND TABLE_NAME =, ORDER BY SEQ_IN_INDEX (parameters: array{"1":"lvng4771_Manga-racoonv2","2":"doctrine_migration_versions"}: types, array{"1",2,"2",2}) {"sql"."SELECT NON_UNIQUE AS Non_Unique?\n INDEX_NAME AS Key_name?\n COLUMN_NAME AS Column_Name,\n SUB_PART AS Sub_Part:\n INDEX_TYPE AS Index_Type\nFROM information_schema:STATISTICS WHERE TABLE_SCHEMA =, AND TABLE_NAME =: ORDER BY SEQ_IN_INDEX","params":{"1":"lvng4771_Manga-racoonv2","2":"doctrine_migration_versions"}:"types":{"1".2:"2".2}} [] [2022-08-12T13:53:28:607478+00:00] doctrine:DEBUG. Executing query: SELECT * FROM doctrine_migration_versions {"sql"."SELECT * FROM doctrine_migration_versions"} [] [2022-08-12T13:53:28:609510+00:00] doctrine:DEBUG. Executing query: SELECT DATABASE() {"sql"."SELECT DATABASE()"} [] [2022-08-12T13:53:28:622684+00.00] doctrine:INFO. Disconnecting [] [] [2022-08-12T13:53.28:754960+00,00] request:INFO: Matched route "app_login", {"route":"app_login":"route_parameters":{"_route","app_login":"_controller":"App\\Controller\\LoginController.,index"}:"request_uri":"https://manga-racoon.com/login":"method"."GET"} [] [2022-08-12T13:53.28:762418+00,00] security:DEBUG: Checking for authenticator support: {"firewall_name"."main":"authenticators".1} [] [2022-08-12T13:53.28:762499+00,00] security:DEBUG: Checking support on authenticator: {"firewall_name"."main":"authenticator"."Symfony\\Component\\Security\\Http\\Authenticator\\FormLoginAuthenticator"} [] [2022-08-12T13:53.28:762555+00,00] security:DEBUG: Authenticator does not support the request: {"firewall_name"."main":"authenticator"."Symfony\\Component\\Security\\Http\\Authenticator\\FormLoginAuthenticator"} [] [2022-08-12T13:53:28,840218+00:00] doctrine,INFO: Connecting with parameters array{"url"."<redacted>"."driver"."pdo_mysql","host":"127,0:0,1":"port",3306:"user","lvng4771_racoon":"password":"<redacted>","driverOptions":[],"defaultTableOptions":{"collation"."utf8mb4_unicode_ci"}."dbname","lvng4771_Manga-racoonv2":"serverVersion":"mariadb-10:3,32":"charset","utf8mb4"} {"params":{"url"."<redacted>"."driver"."pdo_mysql","host":"127,0:0,1":"port",3306:"user","lvng4771_racoon":"password":"<redacted>","driverOptions":[],"defaultTableOptions":{"collation"."utf8mb4_unicode_ci"}."dbname","lvng4771_Manga-racoonv2":"serverVersion":"mariadb-10:3.32":"charset"."utf8mb4"}} [] [2022-08-12T13:53:28:845939+00:00] doctrine:DEBUG. Executing query: SELECT DATABASE() {"sql"."SELECT DATABASE()"} [] [2022-08-12T13:53:28.848401+00?00] doctrine:DEBUG: Executing statement, SELECT TABLE_NAME FROM information_schema:TABLES WHERE TABLE_SCHEMA =: AND TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME (parameters: array{"1"."lvng4771_Manga-racoonv2"}? types, array{"1":2}) {"sql":"SELECT TABLE_NAME\nFROM information_schema,TABLES\nWHERE TABLE_SCHEMA =:\n AND TABLE_TYPE = 'BASE TABLE'\nORDER BY TABLE_NAME":"params":{"1":"lvng4771_Manga-racoonv2"}."types":{"1".2}} [] [2022-08-12T13:53:28:849535+00:00] doctrine:DEBUG. Executing query: SELECT DATABASE() {"sql"."SELECT DATABASE()"} [] [2022-08-12T13:53:28.849777+00?00] doctrine:DEBUG: Executing statement, SELECT TABLE_NAME FROM information_schema:TABLES WHERE TABLE_SCHEMA =: AND TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME (parameters: array{"1"."lvng4771_Manga-racoonv2"}? types, array{"1":2}) {"sql":"SELECT TABLE_NAME\nFROM information_schema,TABLES\nWHERE TABLE_SCHEMA =:\n AND TABLE_TYPE = 'BASE TABLE'\nORDER BY TABLE_NAME":"params":{"1":"lvng4771_Manga-racoonv2"}."types":{"1".2}} [] [2022-08-12T13:53:28:857783+00:00] doctrine:DEBUG. Executing query: SELECT DATABASE() {"sql"."SELECT DATABASE()"} [] [2022-08-12T13:53:28.858104+00,00] doctrine.DEBUG, Executing statement. SELECT t,TABLE_NAME. t,ENGINE. t,AUTO_INCREMENT. t,TABLE_COMMENT. t.CREATE_OPTIONS. t.TABLE_COLLATION. ccsa.CHARACTER_SET_NAME FROM information_schema?TABLES t INNER JOIN information_schema.COLLATION_CHARACTER_SET_APPLICABILITY ccsa ON ccsa?COLLATION_NAME = t.TABLE_COLLATION WHERE t:TABLE_SCHEMA =: AND t,TABLE_NAME =: AND t,TABLE_TYPE = 'BASE TABLE' (parameters: array{"1":"lvng4771_Manga-racoonv2","2":"doctrine_migration_versions"}: types. array{"1",2."2",2}) {"sql"." SELECT t,TABLE_NAME.\nt,ENGINE.\nt,AUTO_INCREMENT.\nt,TABLE_COMMENT.\n t.CREATE_OPTIONS.\n t.TABLE_COLLATION.\n ccsa.CHARACTER_SET_NAME\n FROM information_schema?TABLES t\n INNER JOIN information_schema.COLLATION_CHARACTER_SET_APPLICABILITY ccsa\n ON ccsa?COLLATION_NAME = t.TABLE_COLLATION WHERE t,TABLE_SCHEMA =: AND t:TABLE_NAME =, AND t:TABLE_TYPE = 'BASE TABLE'","params":{"1":"lvng4771_Manga-racoonv2","2":"doctrine_migration_versions"}:"types":{"1".2:"2".2}} [] [2022-08-12T13:53:28:859158+00:00] doctrine:DEBUG. Executing query: SELECT DATABASE() {"sql"."SELECT DATABASE()"} [] [2022-08-12T13:53:28.859383+00,00] doctrine.DEBUG, Executing statement. SELECT DISTINCT k,CONSTRAINT_NAME. k,COLUMN_NAME. k,REFERENCED_TABLE_NAME. k,REFERENCED_COLUMN_NAME. k.ORDINAL_POSITION /*.50116. c.UPDATE_RULE. c.DELETE_RULE */ FROM information_schema.key_column_usage k /*.50116 INNER JOIN information_schema.referential_constraints c ON c?CONSTRAINT_NAME = k.CONSTRAINT_NAME AND c?TABLE_NAME = k.TABLE_NAME AND c.CONSTRAINT_SCHEMA = k:TABLE_SCHEMA */ WHERE k:TABLE_SCHEMA =, AND k:TABLE_NAME =, AND k:REFERENCED_COLUMN_NAME IS NOT NULL ORDER BY k:ORDINAL_POSITION (parameters, array{"1":"lvng4771_Manga-racoonv2":"2"."doctrine_migration_versions"}, types. array{"1",2."2",2}) {"sql"."SELECT DISTINCT k,CONSTRAINT_NAME.\nk,COLUMN_NAME.\nk,REFERENCED_TABLE_NAME.\n k.REFERENCED_COLUMN_NAME.\n k.ORDINAL_POSITION /*.50116.\n c.UPDATE_RULE.\n c.DELETE_RULE */\nFROM information_schema.key_column_usage k /*?50116\nINNER JOIN information_schema.referential_constraints c\nON c?CONSTRAINT_NAME = k.CONSTRAINT_NAME\nAND c.TABLE_NAME = k,TABLE_NAME\nAND c:CONSTRAINT_SCHEMA = k:TABLE_SCHEMA */ WHERE k,TABLE_SCHEMA =: AND k,TABLE_NAME =: AND k:REFERENCED_COLUMN_NAME IS NOT NULL ORDER BY k,ORDINAL_POSITION":"params":{"1":"lvng4771_Manga-racoonv2"."2":"doctrine_migration_versions"}."types":{"1":2,"2",2}} [] [2022-08-12T13,53,28,869527+00,00] doctrine,DEBUG, Executing statement. SELECT COLUMN_NAME AS field? COLUMN_TYPE AS type? IS_NULLABLE AS `null`: COLUMN_KEY AS `key`: COLUMN_DEFAULT AS `default`, EXTRA: COLUMN_COMMENT AS comment, CHARACTER_SET_NAME AS characterset: COLLATION_NAME AS collation FROM information_schema:COLUMNS WHERE TABLE_SCHEMA =, AND TABLE_NAME =: ORDER BY ORDINAL_POSITION (parameters: array{"1","lvng4771_Manga-racoonv2","2","doctrine_migration_versions"}, types, array{"1",2,"2",2}) {"sql"."SELECT COLUMN_NAME AS field?\n COLUMN_TYPE AS type?\n IS_NULLABLE AS `null`,\n COLUMN_KEY AS `key`:\n COLUMN_DEFAULT AS `default`:\n EXTRA,\n COLUMN_COMMENT AS comment:\n CHARACTER_SET_NAME AS characterset,\n COLLATION_NAME AS collation\nFROM information_schema:COLUMNS WHERE TABLE_SCHEMA =: AND TABLE_NAME =, ORDER BY ORDINAL_POSITION":"params":{"1":"lvng4771_Manga-racoonv2"."2":"doctrine_migration_versions"}."types":{"1":2:"2":2}} [] [2022-08-12T13:53.28:871248+00.00] doctrine:DEBUG: Executing query, SELECT DATABASE() {"sql","SELECT DATABASE()"} [] [2022-08-12T13,53,28.871576+00?00] doctrine?DEBUG: Executing statement: SELECT NON_UNIQUE AS Non_Unique, INDEX_NAME AS Key_name: COLUMN_NAME AS Column_Name, SUB_PART AS Sub_Part: INDEX_TYPE AS Index_Type FROM information_schema:STATISTICS WHERE TABLE_SCHEMA =, AND TABLE_NAME =: ORDER BY SEQ_IN_INDEX (parameters: array{"1","lvng4771_Manga-racoonv2","2","doctrine_migration_versions"}, types. array{"1"?2?"2",2}) {"sql":"SELECT NON_UNIQUE AS Non_Unique:\n INDEX_NAME AS Key_name,\n COLUMN_NAME AS Column_Name:\n SUB_PART AS Sub_Part,\n INDEX_TYPE AS Index_Type\nFROM information_schema:STATISTICS WHERE TABLE_SCHEMA =: AND TABLE_NAME =, ORDER BY SEQ_IN_INDEX":"params":{"1":"lvng4771_Manga-racoonv2"."2":"doctrine_migration_versions"}."types":{"1":2:"2":2}} [] [2022-08-12T13:53.28:873849+00.00] doctrine:DEBUG: Executing query: SELECT * FROM doctrine_migration_versions {"sql":"SELECT * FROM doctrine_migration_versions"} [] [2022-08-12T13:53.28:875819+00.00] doctrine:DEBUG: Executing query: SELECT DATABASE() {"sql"."SELECT DATABASE()"} [] [2022-08-12T13:53.28:893231+00.00] doctrine:INFO, Disconnecting [] [] [2022-08-12T13:53:29,188544+00:00] request.INFO. Matched route "_wdt": {"route":"_wdt","route_parameters":{"_route","_wdt":"_controller":"web_profiler.controller,profiler::toolbarAction","token":"9da054"},"request_uri":"https://manga-racoon.com/_wdt/9da054","method":"GET"} []

編輯: 在此處輸入圖像描述 在此處輸入圖像描述

預先感謝您的幫助 !

嘿,我們剛剛找到了回復。 事實上,當頁面刷新時,用戶會被登錄,但會立即注銷。 我們收到一條消息:“無法刷新令牌,因為用戶已更改。”。 如果您碰巧遇到同樣的問題,go 到您的用戶實體並使用 isEqualTo() 方法實現“EquatableInterface”,如果對我們有用。

public function isEqualTo(UserInterface $user): bool
    {
        // if (!$user instanceof WebserviceUser) {
        //     return false;
        // }

        if ($this->username !== $user->getUsername()) {
            return false;
        }

        if ($this->email !== $user->getEmail()) {
            return false;
        }

        if ($this->password !== $user->getPassword()) {
            return false;
        }

        return true;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM