[英]Symfony authentication token getCredentials returning null
我有一個TokenAuthenticator
,它實現了SimplePreAuthenticatorInterface
, AuthenticationSuccessHandlerInterface
和AuthenticationFailureHandlerInterface
。 它創建一個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
?
您是否需要所有路由的所有身份驗證?
如果您允許匿名用戶,則getCredentials
將返回''
,如您從該類的該代碼段中所見
/**
* {@inheritdoc}
*/
public function getCredentials()
{
return '';
}
返回此默認值的另一個默認令牌類是RememberMeToken
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.