function LoginByHttpAuth() { $arAuth = CHTTP::ParseAuthRequest(); if (isset($arAuth["basic"]) && $arAuth["basic"]["username"] != '' && $arAuth["basic"]["password"] != '') { // Authorize user, if it is http basic authorization, with no remembering if (!$GLOBALS["USER"]->IsAuthorized() || $GLOBALS["USER"]->GetLogin() != $arAuth["basic"]["username"]) { return $GLOBALS["USER"]->Login($arAuth["basic"]["username"], $arAuth["basic"]["password"], "N"); } } elseif (isset($arAuth["digest"]) && $arAuth["digest"]["username"] != '' && COption::GetOptionString('main', 'use_digest_auth', 'N') == 'Y') { // Authorize user by http digest authorization if (!$GLOBALS["USER"]->IsAuthorized() || $GLOBALS["USER"]->GetLogin() != $arAuth["digest"]["username"]) { return $GLOBALS["USER"]->LoginByDigest($arAuth["digest"]); } } return null; }
function LoginByHttpAuth() { global $USER; $arAuth = CHTTP::ParseAuthRequest(); foreach (GetModuleEvents("main", "onBeforeUserLoginByHttpAuth", true) as $arEvent) { $res = ExecuteModuleEventEx($arEvent, array(&$arAuth)); if ($res !== null) { return $res; } } if (isset($arAuth["basic"]) && $arAuth["basic"]["username"] != '' && $arAuth["basic"]["password"] != '') { // Authorize user, if it is http basic authorization, with no remembering if (!$USER->IsAuthorized() || $USER->GetLogin() != $arAuth["basic"]["username"]) { return $USER->Login($arAuth["basic"]["username"], $arAuth["basic"]["password"], "N"); } } elseif (isset($arAuth["digest"]) && $arAuth["digest"]["username"] != '' && COption::GetOptionString('main', 'use_digest_auth', 'N') == 'Y') { // Authorize user by http digest authorization if (!$USER->IsAuthorized() || $USER->GetLogin() != $arAuth["digest"]["username"]) { return $USER->LoginByDigest($arAuth["digest"]); } } return null; }
* @var $USER CUser */ global $APPLICATION, $USER; use Bitrix\Main; use Bitrix\Main\Authentication\ApplicationPasswordTable; if ($_SERVER["REQUEST_METHOD"] == "OPTIONS") { header('Access-Control-Allow-Methods: POST, OPTIONS'); header('Access-Control-Max-Age: 60'); header('Access-Control-Allow-Headers: X-Requested-With, Content-Type, Accept'); die(''); } if (!IsModuleInstalled('bitrix24')) { header('Access-Control-Allow-Origin: *'); } $data = array("status" => "failed", "bitrix_sessid" => bitrix_sessid()); $userData = CHTTP::ParseAuthRequest(); $APPLICATION->RestartBuffer(); $login = $userData["basic"]["username"]; $isAlreadyAuthorized = $USER->IsAuthorized(); if (!$isAlreadyAuthorized) { if ($isAlreadyAuthorized) { $USER->Logout(); } if (IsModuleInstalled('bitrix24')) { header('Access-Control-Allow-Origin: *'); } if ($login) { if (CModule::IncludeModule('bitrix24') && ($captchaInfo = CBitrix24::getStoredCaptcha())) { $data["captchaCode"] = $captchaInfo["captchaCode"]; $data["captchaURL"] = $captchaInfo["captchaURL"]; } elseif ($APPLICATION->NeedCAPTHAForLogin($login)) {
public static function OnAfterUserAuthorize($arParams) { $arAuth = CHTTP::ParseAuthRequest(); if(isset($arAuth["basic"]) && $arAuth["basic"]["username"] <> '' && $arAuth["basic"]["password"] <> '' && strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'bitrix') === false) { return false; } if (isset($arParams['update']) && $arParams['update'] === false) return false; if ($arParams['user_fields']['ID'] <= 0) return false; $arParams['user_fields']['ID'] = intval($arParams['user_fields']['ID']); if (isset($_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']]) && intval($_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']])+100 > time()) return false; $_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']] = time(); unset($_SESSION['USER_LAST_LOGOUT_'.$arParams['user_fields']['ID']]); $userStatus = 'online'; if (CModule::IncludeModule('im')) { $res = Bitrix\Im\StatusTable::getById($arParams['user_fields']['ID']); if ($status = $res->fetch()) { $userStatus = $status['STATUS']; } } CPullStack::AddShared(Array( 'module_id' => 'online', 'command' => 'user_online', 'params' => Array( 'USER_ID' => $arParams['user_fields']['ID'], 'STATUS' => $userStatus ), )); return true; }
public static function OnAfterUserAuthorize($arParams) { $arAuth = CHTTP::ParseAuthRequest(); if(isset($arAuth["basic"]) && $arAuth["basic"]["username"] <> '' && $arAuth["basic"]["password"] <> '' && strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'bitrix') === false) { return false; } if (isset($arParams['update']) && $arParams['update'] === false) return false; if ($arParams['user_fields']['ID'] <= 0) return false; $arParams['user_fields']['ID'] = intval($arParams['user_fields']['ID']); if (isset($_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']]) && intval($_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']])+100 > time()) return false; $_SESSION['USER_LAST_AUTH_'.$arParams['user_fields']['ID']] = time(); unset($_SESSION['USER_LAST_LOGOUT_'.$arParams['user_fields']['ID']]); CPullStack::AddShared(Array( 'module_id' => 'main', 'command' => 'user_authorize', 'params' => Array( 'USER_ID' => $arParams['user_fields']['ID'] ), )); }