Your IP : 18.118.163.233
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
die();
}
/**
* Обеспечиваем механихм авторизации по письму для опроса покупателя
* нам прилетает запрос вида
* http://eshop.optima.webprofy.ru/ajax/?act=email-auth&id=34&hash=m2gUoZ8Cfb6840875c8e062f5e4c722136869b23
* где id=34 ИД заказа
* hash=m2gUoZ8Cfb6840875c8e062f5e4c722136869b23 CHECKWORD пользователя
* наша задача найти пользователя по CHECKWORD повесить на него куку и авторизовать через CUser::LoginByHash
*
* https://dev.1c-bitrix.ru/api_help/main/reference/cuser/authorize.php
* https://dev.1c-bitrix.ru/api_help/main/reference/cuser/loginbyhash.php
*/
global $USER;
/** 1 Есть ИД заказа */
if (isset($_REQUEST['id'])) {
/** Можем авторизовать? */
if (isset($_REQUEST['hash']) && (!$USER->IsAuthorized())) {
$filter = Array("CHECKWORD" => htmlspecialcharsbx($_REQUEST['hash']));
$rsUsers = CUser::GetList($by = "id", $sort = "asc", $filter);
$searchUser = array();
if ($ob = $rsUsers->Fetch()) {
$searchUser = $ob;
}
if (isset($searchUser['ID'])) {
$USER->Authorize(
$searchUser['ID'],
true, /** для CUser::LoginByHash */
true
);
}
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://" . SITE_SERVER_NAME . '/ajax/?act=email-auth&id=' . $_REQUEST['id']);
die();
} elseif (!$USER->IsAuthorized()) {
if (!is_object($USER)) $USER = new CUser;
$cookie_login = ${COption::GetOptionString("main", "cookie_name", "BITRIX_SM") . "_LOGIN"};
$cookie_md5pass = ${COption::GetOptionString("main", "cookie_name", "BITRIX_SM") . "_UIDH"};
$USER->LoginByHash($cookie_login, $cookie_md5pass);
}
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://" . SITE_SERVER_NAME . '/cart/interview/?id=' . $_REQUEST['id']);
die();
} else {
/** Шлем нафик на главную */
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://" . SITE_SERVER_NAME . '/');
die();
}