我在 5.4 版本上構建了空的新專案,我使用這些命令來構建專案:
composer create-project symfony/skeleton:"^5.4" testapp54 &&
cd testapp54 &&
composer require webapp &&
composer require symfony/apache-pack &&
composer require symfonycasts/verify-email-bundle &&
composer require symfony/security-bundle &&
composer require symfonycasts/reset-password-bundle &&
php bin/console make:controller MainController &&
php bin/console make:user &&
php bin/console make:auth &&
php bin/console make:registration &&
php bin/console make:reset-password &&
php bin/console make:migration &&
php bin/console doctrine:migrations:migrate
在這些安裝和配置應用程式正常作業之后,我什至可以注冊,如果我在 conf 選項中選擇
Do you want to automatically authenticate the user after registration? (yes/no) [yes]:是,我在注冊后登錄。但是,如果我注銷并再次嘗試登錄,我就不能!即使我輸入了錯誤的憑證,我也沒有任何錯誤。

uj5u.com熱心網友回復:
回到 5.2 左右,Symfony 引入了另一個身份驗證系統,稱為 Http 身份驗證。它的目標是替換舊的 Guard 身份驗證系統。
Authenticator 類包含一個支持方法,該方法基本上檢測 POST /login 何時被處理并啟動身份驗證程序。如果該方法回傳 false,則不會嘗試進行身份驗證。
在新引入的 Http 認證系統中,默認支持的方法不是很健壯。它在使用symfony server:run網路服務器時有效,但在許多其他有效的服務器配置中失敗。
因此,如果您的身份驗證失敗且沒有錯誤訊息,請嘗試在您的 make:auth 生成的身份驗證器類中覆寫 support 方法:
public function supports(Request $request)
{
return self::LOGIN_ROUTE === $request->attributes->get('_route')
&& $request->isMethod('POST');
}
看看這是否有幫助。這是舊的 Guard 身份驗證器曾經使用的。并隨時對https://github.com/symfony/maker-bundle/issues/1056發表評論。也許我們可以讓制造商的人調整他們的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433758.html
下一篇:Git安全性:除了user.name和user.email之外,還使用??PushCredentialIdentity標記提交
