Symfony身份验证令牌getCredentials返回null

时间:2017-02-20 06:14:30

标签: php symfony authentication single-sign-on token

我有一个TokenAuthenticator来实现SimplePreAuthenticatorInterfaceAuthenticationSuccessHandlerInterfaceAuthenticationFailureHandlerInterface。它会创建一个PreAuthenticatedToken令牌。

在该类中,我有一个名为authenticateToken的方法,看起来像这样。

/**
 * @param TokenInterface        $token
 * @param UserProviderInterface $userProvider
 * @param $providerKey
 *
 * @return PreAuthenticatedToken
 */
public function authenticateToken(TokenInterface $token, UserProviderInterface $userProvider, $providerKey)
{
    $token = $token->getCredentials();

代码有效,但最近有几次getCredentials返回null导致代码崩溃。

我正在尝试确定这是为什么并且考虑过用户使用私人浏览器会话和/或清除他们的会话cookie /缓存等,但我似乎无法复制这一点。

考虑authenticateToken方法类型 - 将$token变量提示为TokenInterface - 什么会导致调用getCredentials然后返回null?< / p>

1 个答案:

答案 0 :(得分:-1)

您是否要求对所有路线进行所有身份验证?

如果您允许匿名用户getCredentials将返回'',您可以在此类代码段中看到

/**
 * {@inheritdoc}
 */
public function getCredentials()
{
    return '';
}

返回此值的另一个默认令牌类是RememberMeToken