我有一個TokenAuthenticator
,它實現了SimplePreAuthenticatorInterface
,AuthenticationSuccessHandlerInterface
和AuthenticationFailureHandlerInterface
。它創建一個PreAuthenticatedToken
令牌。Symfony認證令牌getCredentials返回null
在這一類我有一個名爲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
?
謝謝,但我不知道這會有所幫助。並不是所有的路由都需要認證,但是這是一個特定的途徑。 – crmpicco
當你轉儲'get_class($ token)'時,你會得到什麼? – mickadoo