簡體   English   中英

Symfony身份驗證令牌getCredentials返回null

[英]Symfony authentication token getCredentials returning null

我有一個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

您是否需要所有路由的所有身份驗證?

如果您允許匿名用戶,則getCredentials將返回'' ,如您從該類的該代碼段中所見

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

返回此默認值的另一個默認令牌類是RememberMeToken

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM