• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/liveidoauth.php
  • Класс: CSocServLiveIDOAuth
  • Вызов: CSocServLiveIDOAuth::getStorageToken
public function getStorageToken()
{
	$accessToken = null;
	$userId = intval($this->userId);
	if($userId > 0)
	{
		$dbSocservUser = BitrixSocialservicesUserTable::getList([
			'filter' => ['=USER_ID' => $userId, "=EXTERNAL_AUTH_ID" => "LiveIDOAuth"],
			'select' => ["OATOKEN", "REFRESH_TOKEN", "OATOKEN_EXPIRES"]
		]);
		if($arOauth = $dbSocservUser->fetch())
		{
			$accessToken = $arOauth["OATOKEN"];

			if(empty($accessToken) || ((intval($arOauth["OATOKEN_EXPIRES"]) > 0) && (intval($arOauth["OATOKEN_EXPIRES"] < intval(time())))))
			{
				if(isset($arOauth['REFRESH_TOKEN']))
					$this->entityOAuth->getNewAccessToken($arOauth['REFRESH_TOKEN'], $userId, true);
				if(($accessToken = $this->entityOAuth->getToken()) === false)
					return null;
			}
		}
	}

	return $accessToken;
}