簡體   English   中英

為什么Symfony不使用表單來處理安全組件登錄?

[英]Why Symfony dont use a Form to handle security component login?

從描述如何設置與Symfony Security組件一起使用的登錄表單的文檔https://symfony.com/doc/current/security/form_login_setup.html中,我很驚訝地沒有看到Symfony Form組件的使用。

他們以純HTML格式呈現表單,並且表單由某種魔術,安全組件在某處處理(並打破了應該處理HTTP請求的Controller的概念)。

是否有特定的原因不使用Form類型? (以及控制器)。

Symfony安全性不使用表單,因為表單可處理提交的數據,並且大多數身份驗證方法是使用表單無法訪問的HTTP標頭完成的。

安全組件具有2個角色:身份驗證和授權。 您在此問題中提到身份驗證。

身份驗證比僅在控制器中處理表單要復雜得多。

僅一種身份驗證方法意味着以symfony形式提交表單:UsernamePasswordToken,甚至可以通過標頭將其作為http基本/摘要身份驗證提交。

其他登錄/身份驗證/授權方式是通過“記住我”令牌,會話,oauth令牌,Json Web令牌,SAML等。

更為靈活的方法是僅基於事件建立身份驗證系統,盡管這給使用Symfony 3中的Symfony Guard解決的系統增加了相當的復雜性。

在此處輸入圖片說明

https://symfony.com/doc/2.0/book/security.html

最后,我編寫了自己的處理Symfony表單的GuardAuthenticator(擴展了Symfony \\ Component \\ Security \\ Guard \\ Authenticator \\ AbstractFormLoginAuthenticator):

Symfony表單衛士身份驗證器

這項工作就像一種魅力! 設計團隊可以輕松使用表單。

暫無
暫無

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

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