本文整理汇总了PHP中Symfony\Component\Security\Core\Authentication\Token\TokenInterface::getImpersonatedUserInfos方法的典型用法代码示例。如果您正苦于以下问题:PHP TokenInterface::getImpersonatedUserInfos方法的具体用法?PHP TokenInterface::getImpersonatedUserInfos怎么用?PHP TokenInterface::getImpersonatedUserInfos使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\Security\Core\Authentication\Token\TokenInterface
的用法示例。
在下文中一共展示了TokenInterface::getImpersonatedUserInfos方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: authenticate
/**
* @param TokenInterface $token
*
* @return TokenInterface
*/
public function authenticate(TokenInterface $token)
{
$now = new \DateTime();
/** @var ApiUnauthenticatedUserToken $token */
$clientTokenInfos = $this->validateClientToken($token->getClientTokenInfos(), $now);
$userTokenInfos = $this->validateUserToken($token->getUserTokenInfos(), $now);
$username = $token->getUsername();
if ($token->isImpersonating()) {
/** @var ApiUser $sudoer */
$sudoer = $this->userProvider->loadUserByUsername($token->getUsername());
if (!$sudoer->isAllowedToSwitch()) {
throw new MissingSudoPrivilegeException();
}
$username = $token->getImpersonatedUserInfos()['id'];
}
return new ApiAuthenticatedUserToken($clientTokenInfos, $userTokenInfos, $this->userProvider->loadUserByUsername($username));
}