AuthLog属于securtiy模块,配置文件是security.yaml文件。配置中主要的key是 firewall.
负责Form登陆鉴定的类主要是LoginFormAuthenticator , 实现了 AuthenticatorInterface .
关于几个概念, 可以参考这篇文章
- authen-tication 鉴权 (who are you?)
- autho-rization 授权 (what permission do you have?)
AbstractFormLoginAuthenticator (以下简称AFA)
- AFA::supports($request $req) bool
Does the authenticator support the given Request? If this returns false, the authenticator will be skipped.
用来判断是否需要使用登录鉴定 - AFA::getCredentials(Request $req)::array
用来获取客户输入的登录凭证(用户名和密码),同时把用户的最后一次输入的用户名保存到session中,已备现实错误信息时使用 - AFA::getUser($credentials, $userProvider): userInterface
从userProvider获取用户模型。如果用户没有找到呢? - AFA::checkCredentials(credentials, user): bool
比较credentials中的输入密码和user中保存的密码 - AFA::onAuthenticationSuccess()
登陆成后的回调函数 - AFA::onAuthenticationFailure($request, $exception)
登陆失败的回调函数。用于比如记录异常的信息到session。 - AFA::getLoginUrl(): string
用于但登陆失败,需要把用户重新引到到登陆页面地址
备注: 完成文章后发现Symfony 5.3对Auth做了改动。所以请注意版本。