• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/authentication/device.php
  • Класс: BitrixMainAuthenticationDevice
  • Вызов: Device::findByUserAgent
static function findByUserAgent(Context $context): ?EO_UserDevice
{
	$request = MainContext::getCurrent()->getRequest();
	$userAgent = $request->getUserAgent();

	// only user agents not supporting cookies
	$query = InternalUserDeviceTable::query()
		->setSelect(['*'])
		->where('USER_ID', $context->getUserId())
		->where('COOKABLE', false)
		->exec()
	;

	while ($device = $query->fetchObject())
	{
		$pattern = preg_replace('/\d+/i', '\d+', preg_quote($device->getUserAgent(), '/'));
		if (preg_match("/{$pattern}/i", $userAgent))
		{
			return $device;
		}
	}

	return null;
}