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

			$entityOauth = $this->getEntityOAuth();
			$entityOauth->setToken($accessToken);
			$entityOauth->setAccessTokenExpires($accessTokenExpires);

			if($entityOauth->checkAccessToken())
			{
				return $accessToken;
			}
			elseif(isset($arOauth["REFRESH_TOKEN"]))
			{
			if($entityOauth->getNewAccessToken($arOauth["REFRESH_TOKEN"], $arOauth["USER_ID"],true))
				{
					return $entityOauth->getToken();
				}
			}
		}
	}

	return $accessToken;
}