FrontendUser::isLoggedIn() 

\nn\t3::FrontendUser()->isLoggedIn($request = NULL); 

Checks whether the user is currently logged in as a FE user. Earlier: isset($GLOBALS['TSFE']) && $GLOBALS['TSFE']->loginUser

// Check after complete initialization of the front/backend
\nn\t3::FrontendUser()->isLoggedIn();

// Check using the JWT, e.g. in an eID script before authentication
\nn\t3::FrontendUser()->isLoggedIn( $request );
Copied!
@param ServerRequest $request
@return boolean

Source Code 

public function isLoggedIn( $request = null )
{
	if ($request) {
		$cookieName = $this->getCookieName();
		$jwt = $request->getCookieParams()[$cookieName] ?? false;
		$identifier = false;
		if ($jwt) {
			try {
				$params = $request->getAttribute('normalizedParams') ?? NormalizedParams::createFromRequest($request);
				$cookieScope = $this->getCookieScope( $params );
				$identifier = \TYPO3\CMS\Core\Session\UserSession::resolveIdentifierFromJwt($jwt, $cookieScope);
			} catch( \Exception $e ) {}
		}
		if ($identifier) return true;
	}
	$user = $this->getFrontendUser();
	// Context `frontend.user.isLoggedIn` scheint in Middleware nicht zu gehen. Fallback auf TSFE.
	$loginUserFromTsfe = $user && isset($user->user['uid']);
	$context = GeneralUtility::makeInstance(Context::class);
	return $context->getPropertyFromAspect('frontend.user', 'isLoggedIn') || $loginUserFromTsfe;
}
Copied!