Symfonyob娱乐下载 5.3的新功能:对安全用户的改进
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
重命名用户
来InMemoryUser
在Syob娱乐下载mfony应用程序中,内存用户提供商允许在内存中加载的配置文件中创建用户(并定义他们的凭据),而不使用数据库或任何其他持久化服务。
尽管此用户提供程序仅用于原型或非常小/特殊的应用程序,但它基于一个名为用户
(整个命名空间为ob娱乐下载
).这让一些新来者感到困惑,他们认为这是主要的用户
类的Symfonyob娱乐下载安全性。
这就是为什么在Symfonyob娱乐下载 5.3中我们重命名了用户
来InMemoryUser
而且UserChecker
来InMemoryUserChecker
以便更好地传达它们的目的(在5.3中旧的名称仍然有效,但它们已被弃用,在Symfony 6.0中它们将被删除):ob娱乐下载
1 2 3 4 5
#配置/包/安全。Yaml安全:password_hashers:- ob娱乐下载Symfony\组件\安全\核心\用户\用户:bcrypt+ ob娱乐下载Symfony\组件\安全\核心\用户\InMemoryUser: bcrypt
重命名用户名
来标识符
与用户相关的另一个混淆来源是Symfony安全性中使用的“用户名”概念。ob娱乐下载在许多应用程序中,这个用户名不是传统的用户名,而是电子邮件,甚至是一些API令牌。
这就是为什么在Symfonyob娱乐下载 5.3中我们决定避免这种混淆我们将username重命名为user identifier.这可能需要在应用程序代码中进行一些更改(在5.3中旧的名称仍然有效,但它们已被弃用,在Symfony 6.0中它们将被删除):ob娱乐下载
用户界面:getUsername ()
现在是用户界面:getUserIdentifier ()
loadUserByUsername ()
现在是loadUserByUserIdentifier ()
,在用户加载程序和用户提供程序中UsernameNotFoundException
现在是UserNotFoundException
密码与用户解耦
的ob娱乐下载
由Symfony应用程序中的所有安全用户实现。ob娱乐下载遗憾的是,这个接口是时代的产物,它包含的一些方法在现代应用程序中不再使用。
第一个不需要的方法是getSalt ()
,当使用现代密码哈希算法(bcrypt, Argon2等)时不再需要LegacyPasswordAuthenticatedUserInterface
.
另一种方法是getPassword ()
这在许多无密码功能中已经不再需要,比如登录链接.这种方法已被转移到一种新的PasswordAuthenticatedUserInterface
.
在Syob娱乐下载mfony 5.3中,用户界面
仍然包含getPassword ()
而且getSalt ()
方法(它们将在Symfony 6.0中被删除)。ob娱乐下载但是,当升级到Symfony 5.3时,如果使用这些方ob娱乐下载法,就需要实现新的接口。
评论
我认为“用户标识符”比“安全标识符”更好:它是最具体的(“security”仍然是通用的),而且它比“security”更短(所以不那么拗口;-))。如果你不同意,请在https://github.com/symfony/symfony/issues/new/上打开一个问题来讨论更ob娱乐下载详细的内容!
在接口中声明它将是BC中断,因为实现它的每个类都必须拥有该方法。
他们只是在注释中暗示了该方法,所以我们可以为Symfony 6做准备。ob娱乐下载
实际的声明将在Symfony 6中ob娱乐下载
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
Lyubomir Grozdanov is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now