diff --git a/lib/private/legacy/api.php b/lib/private/legacy/api.php
index 17ee9c5d468a7b446f27f823f6ea5a72d8462ef7..894aee28560ff5a188c2ee9ee2b5441565021c88 100644
--- a/lib/private/legacy/api.php
+++ b/lib/private/legacy/api.php
@@ -332,25 +332,20 @@ class OC_API {
 		$userSession = \OC::$server->getUserSession();
 		$request = \OC::$server->getRequest();
 		try {
-			$loginSuccess = $userSession->tryTokenLogin($request);
-			if (!$loginSuccess) {
-				$loginSuccess = $userSession->tryBasicAuthLogin($request, \OC::$server->getBruteForceThrottler());
+			if ($userSession->tryTokenLogin($request)
+				|| $userSession->tryBasicAuthLogin($request, \OC::$server->getBruteForceThrottler())) {
+				self::$logoutRequired = true;
+			} else {
+				return false;
 			}
-		} catch (\OC\User\LoginException $e) {
-			return false;
-		}
-	
-		if ($loginSuccess === true) {
-			self::$logoutRequired = true;
-
 			// initialize the user's filesystem
 			\OC_Util::setupFS(\OC_User::getUser());
 			self::$isLoggedIn = true;
 
 			return \OC_User::getUser();
+		} catch (\OC\User\LoginException $e) {
+			return false;
 		}
-
-		return false;
 	}
 
 	/**
diff --git a/lib/private/legacy/user.php b/lib/private/legacy/user.php
index 621ea3535b175a276ac54763b9cb84c25bb6557c..7e7cbab3bceacfeb691a07c256b89bcded9ef5c3 100644
--- a/lib/private/legacy/user.php
+++ b/lib/private/legacy/user.php
@@ -199,9 +199,10 @@ class OC_User {
 				if($setUidAsDisplayName) {
 					self::setDisplayName($uid);
 				}
-				self::getUserSession()->setLoginName($uid);
+				$userSession = self::getUserSession();
+				$userSession->setLoginName($uid);
 				$request = OC::$server->getRequest();
-				self::getUserSession()->createSessionToken($request, $uid, $uid);
+				$userSession->createSessionToken($request, $uid, $uid);
 				// setup the filesystem
 				OC_Util::setupFS($uid);
 				// first call the post_login hooks, the login-process needs to be