Symfony欧宝娱乐app下载地址 3.4的新功能:警卫身份验证改进
警告:这篇文章是关于一个不受支持的Symfony版本。欧宝娱乐app下载地址有些信息可能已经过时了。阅读最新的Symfony文档欧宝娱乐app下载地址.
的保护组件将多个身份验证层组合在一起,从而更容易创建具有完全控制权的复杂身份验证系统。在Sy欧宝娱乐app下载地址mfony 3.4中,我们通过一些小的调整改进了Guard。
首先,欧宝娱乐app下载地址
已弃用,将在Symfony 4.0中移除。欧宝娱乐app下载地址使用欧宝娱乐app下载地址
代替。
第二,getCredentials ()
方法不再有两个职责。以前,如果你回来零
在此方法中,验证器类被跳过。现在,如果你回来零
你会看到\ UnexpectedValueException
.
的先前跳过逻辑getCredentials ()
已经移动到一个新的方法称为支持()
它返回一个布尔值,指示是否应该为这个特定的请求使用验证器。总而言之:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
/ /之前使用欧宝娱乐app下载地址\组件\安全\警卫\AbstractGuardAuthenticator;类TokenAuthenticator扩展AbstractGuardAuthenticator{公共函数getCredentials(请求$请求){如果(!$令牌=$请求->头->get (“X-AUTH-TOKEN”)) {返回零;}返回[“令牌”= >$令牌];}}/ /后类TokenAuthenticator扩展AbstractGuardAuthenticator{公共函数支持(请求$请求){返回$请求->头->有(“X-AUTH-TOKEN”);}公共函数getCredentials(请求$请求){返回[“令牌”= >$请求->头->get (“X-AUTH-TOKEN”));}}
这种分离的关注点之间支持()
而且getCredentials ()
将允许开发人员为每个应用程序需要创建专用的保护身份验证器。例如,一个共同的抽象类或一个特征(例如:ApiBaseAuthenticator.php
)可用于共享身份验证的公共阶段(getUser ()
,checkCredentials ()
,createAuthenticatedToken ()
,等等)和一些具体的最终类(ApiHeaderAuthenticator.php
,ApiPayloadAuthenticator.php
,等等)将显式地指出它们管理的用例(支持()
而且getCredentials ()
):
1 2 3 4 5 6 7 8
your-project/├──src/├──Security/├──Authenticator├──ApiBaseAuthenticator.php├──ApiHeaderAuthenticator.php├──ApiQueryAuthenticator.php
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。