本文整理匯總了PHP中Symfony\Component\Security\Core\Authentication\Token\TokenInterface::isImpersonating方法的典型用法代碼示例。如果您正苦於以下問題:PHP TokenInterface::isImpersonating方法的具體用法?PHP TokenInterface::isImpersonating怎麽用?PHP TokenInterface::isImpersonating使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Symfony\Component\Security\Core\Authentication\Token\TokenInterface
的用法示例。
在下文中一共展示了TokenInterface::isImpersonating方法的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));
}