gpt4 book ai didi

php - 为什么我们不应该检查用户对象来检查用户是否在 Symfony2 中在线

转载 作者:可可西里 更新时间:2023-11-01 00:42:07 26 4
gpt4 key购买 nike

official Symfony documentation告诉我们以下内容:

// yay! Use this to see if the user is logged in
if (!$this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) {
throw $this->createAccessDeniedException();
}

// boo :(. Never check for the User object to see if they're logged in
if ($this->getUser()) {

}

我一直在使用 $this->getUser() 直到现在都没有问题,检查用户是否在线和获取当前登录的用户,并且刚刚发现它是错的。但是我找不到的是为什么这样做是错误的。

任何人都可以告诉或举例说明这会导致问题吗?我没有看到问题,因为它总是返回 null(如文档所说,从 anon. 转换而来)如果没有人登录并且当前登录的用户类作为对象,可以访问其方法。

最佳答案

我认为这是由记住我的标记引起的。

Symfony 文档说明了这一点:

Users who are logged in only because of a "remember me cookie" will have IS_AUTHENTICATED_REMEMBERED but will not have IS_AUTHENTICATED_FULLY.

$this->getUser() 不会进行这种区分,因此建议使用 authorization_checker。出于这个原因,我假设提出此建议只是为了避免不了解这一事实的开发人员可能遇到的潜在问题。

关于php - 为什么我们不应该检查用户对象来检查用户是否在 Symfony2 中在线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32739226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com