以安全方式访问Symfony / Silex用户数据

问题描述 投票:1回答:1

如何从Symfony安全会话访问当前登录的用户ID?我不在课堂上,所以$this->get('security.context')->getToken()不起作用。到目前为止,这还行不通:

$app->get('security.context')->getToken()
$app->getToken()
$app->secruity->getToken()
security silex
1个回答
1
投票

您的拼写有误:

$ app-> 安全性-> getToken()//您已编写安全性!!

$ app-> security-> getToken()//固定版本

也许这是它不起作用的原因。 SecurityProvider组件提供以下服务:

  • 安全性
  • security.authentication_manager
  • security.access_manager
  • security.session_strategy
  • security.user_checker
  • security.last_error
  • security.encoder_factory
  • security.encoder.digest

所以我想security.context在silex中不起作用...

按照文档中的说明,您可以通过以下方式访问SecurityProvider实例:

$app['security'];

要获得当前用户,您可以使用:

$token = $app['security']->getToken();
if (null !== $token) {
    $user = $token->getUser();
}

有关更多信息,请阅读SecurityServiceProvider的文档

还要确保您已在应用程序中注册了SecurityServiceProvider !!

© www.soinside.com 2019 - 2024. All rights reserved.