在安全性中访问Synfomy / Silex用户数据

时间:2014-03-25 17:18:34

标签: security silex

如何从synfomy安全会话中访问当前登录的用户ID?我不在课堂上,所以$ this-> get('security.context') - > getToken()不起作用。以下是迄今为止尚无法解决的问题:是的,我是Silex的新手,非常感谢任何建议。

$app->get('security.context')->getToken()
$app->getToken()
$app->secruity->getToken()

1 个答案:

答案 0 :(得分:1)

拼写错误:

$ app-> secruity - > getToken()//您已写过SECRUITY !!!

$ app-> 安全 - > 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 !!!