週末後我進入了我的網站主頁,我看到自己在主頁上登錄,主頁不適合登錄用戶!通常它工作正常,我不知道發生了什麼,如果我註銷並再次登錄它再次正常工作。Symfony2 - 用戶在一段時間後失去IS_AUTHENTICATED_FULLY角色
很少有與它的問題:
我進入我的主頁作爲登錄的用戶甚至儘管我清楚的狀態控制器:
if ($this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) { return $this->redirectToRoute('authorization'); }
所以我應該重定向到頁面授權,但我不是。
我可以看到 「HOME」 鏈接中導航,但在我的菜單生成器的代碼,我檢查是否用戶
IS_AUTHENTICATED_FULLY
之前顯示它:if ($securityContext->getToken()) { if(!$securityContext->isGranted('IS_AUTHENTICATED_FULLY')) { $menu->addChild('HOME', array( 'route' => 'homepage', 'attributes' => array( 'class' => 'nav-li' ) )); } }
它似乎有時IS_AUTHENTICATED_FULLY
不能用作檢查用戶是否登錄的方式。
PS我在週五使用remember_me
的表格登錄了網站,不確定是否有幾天的時間與它有關。
這裏是我的防火牆(我在不同的頁面多次登錄表單):
firewalls:
about:
pattern: ^/about
anonymous: ~
provider: main
context: primary_auth
form_login:
login_path: /about
check_path: /about/login_check
default_target_path: /authorization
logout:
path: /logout
target: homepage
remember_me:
secret: '%secret%'
lifetime: 31536000
programs:
pattern: ^/programs
anonymous: ~
provider: main
context: primary_auth
form_login:
login_path: /programs
check_path: /programs/login_check
default_target_path: /authorization
logout:
path: /logout
target: homepage
remember_me:
secret: '%secret%'
lifetime: 31536000
contacts:
pattern: ^/contacts
anonymous: ~
provider: main
context: primary_auth
form_login:
login_path: /contacts
check_path: /contacts/login_check
default_target_path: /authorization
logout:
path: /logout
target: homepage
remember_me:
secret: '%secret%'
lifetime: 31536000
main:
pattern: ^
anonymous: ~
provider: main
context: primary_auth
form_login:
login_path: /
check_path: /login_check
default_target_path: /authorization
logout:
path: /logout
target: homepage
remember_me:
secret: '%secret%'
lifetime: 31536000
oauth:
resource_owners:
trainee_facebook: /login/check-facebook
trainee_linkedin: /login/check-trainee-linkedin
trainee_xing: /login/check-trainee-xing
company_linkedin: /login/check-company-linkedin
company_xing: /login/check-company-xing
university_linkedin: /login/check-university-linkedin
university_xing: /login/check-university-xing
login_path: /
use_forward: false
failure_path: /failure-path
default_target_path: /authorization
oauth_user_provider:
service: my_custom_user_provider
UPDATE
突然而不是IS_AUTHENTICATED_FULLY
,IS_AUTHENTICATED_REMEMBERED
工作正常,我不明白爲什麼!有沒有任何解釋爲什麼用戶會失去IS_AUTHENTICATED_FULLY
角色?
完美的解釋。謝謝! 還有一個問題,我也使用社交媒體登錄,它不使用remember_me。它會檢測登錄用戶還是可以使用'if(IS_AUTHENTICATED_FULLY || IS_AUTENTICATED_REMEMBERED)'還是不可行? –
這不是必需的,被授予'IS_AUTHENTICATED_FULLY'的用戶總是被授予'IS_AUTHENTICATED_REMEMBERED'。 – Gerry
非常感謝您! –