• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/authentication/device.php
  • Класс: BitrixMainAuthenticationDevice
  • Вызов: Device::addDeviceLogin
static function addDeviceLogin(EO_UserDevice $device, Context $context): EO_UserDeviceLogin
{
	$ip = GeoIpManager::getRealIp();

	$login = InternalUserDeviceLoginTable::createObject();

	$login
		->setDeviceId($device->getId())
		->setLoginDate(new MainTypeDateTime())
		->setIp($ip)
		->setAppPasswordId($context->getApplicationPasswordId())
		->setStoredAuthId($context->getStoredAuthId())
		->setHitAuthId($context->getHitAuthId())
	;

	if (Option::get('main', 'user_device_geodata', 'N') === 'Y')
	{
		$ipData = GeoIpManager::getDataResult($ip, '', ['cityGeonameId']);

		if ($ipData && $ipData->isSuccess())
		{
			$data = $ipData->getGeoData();

			$login
				->setCityGeoid($data->cityGeonameId)
				->setRegionGeoid($data->subRegionGeonameId ?? $data->regionGeonameId)
				->setCountryIsoCode($data->countryCode)
			;
		}
	}

	$login->save();

	return $login;
}